From 1d4528a330d5031d831706d81cc813959a97b206 Mon Sep 17 00:00:00 2001 From: Helge Eichhorn Date: Thu, 14 Nov 2019 16:43:34 +0100 Subject: [PATCH] Use searchsortedlast for BSplines --- src/interpolation_alg/interpolation_methods.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/interpolation_alg/interpolation_methods.jl b/src/interpolation_alg/interpolation_methods.jl index 1bede3dd..a74694cb 100644 --- a/src/interpolation_alg/interpolation_methods.jl +++ b/src/interpolation_alg/interpolation_methods.jl @@ -140,7 +140,7 @@ end # BSpline Curve Interpolation function (A::BSplineInterpolation{<:AbstractVector{<:Number}})(t::Number) # change t into param [0 1] - idx = findfirst(x->x>=t,A.t) - 1 + idx = searchsortedlast(A.t,t) idx == 0 ? idx += 1 : nothing t = A.p[idx] + (t - A.t[idx])/(A.t[idx+1] - A.t[idx]) * (A.p[idx+1] - A.p[idx]) n = length(A.t) @@ -155,7 +155,7 @@ end # BSpline Curve Approx function (A::BSplineApprox{<:AbstractVector{<:Number}})(t::Number) # change t into param [0 1] - idx = findfirst(x->x>=t,A.t) - 1 + idx = searchsortedlast(A.t,t) idx == 0 ? idx += 1 : nothing t = A.p[idx] + (t - A.t[idx])/(A.t[idx+1] - A.t[idx]) * (A.p[idx+1] - A.p[idx]) n = length(A.t)