From fce635f9dd65ed79adcc811631391f673d46cf63 Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Fri, 18 Oct 2024 15:06:48 +0100 Subject: [PATCH] BF: Fix start index selection for even order interpolation --- splinterpolator.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/splinterpolator.h b/splinterpolator.h index 9c367c3..bc8c8f5 100644 --- a/splinterpolator.h +++ b/splinterpolator.h @@ -760,7 +760,12 @@ unsigned int Splinterpolator<T>::get_start_indicies(const double *coord, int *si unsigned int ni = _order+1; for (unsigned int i=0; i<_ndim; i++) { - sinds[i] = std::ceil(coord[i]) - ni/2; + if (odd(ni)) { + sinds[i] = std::floor(coord[i] + 0.5) - ni/2; + } + else { + sinds[i] = std::ceil(coord[i]) - ni/2; + } } for (unsigned int i=_ndim; i<5; i++) sinds[i] = 0; -- GitLab