diff --git a/splinterpolator.h b/splinterpolator.h index 9c367c398b48a490c35fa088bfa3d3b928720427..bc8c8f59bd7a45f508fd5b167f58d24321660532 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;