From e115095f705d058162c430620f754fb0155fdb6e Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Tue, 6 Sep 2022 16:25:28 +0200 Subject: [PATCH] Functions: correct interpolate function for N points --- src/lib/mathlib/math/Functions.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/mathlib/math/Functions.hpp b/src/lib/mathlib/math/Functions.hpp index fc76102200..b4e1162817 100644 --- a/src/lib/mathlib/math/Functions.hpp +++ b/src/lib/mathlib/math/Functions.hpp @@ -167,7 +167,7 @@ const T interpolate(const T &value, const T &x_low, const T &x_high, const T &y_ /* * Constant, piecewise linear, constant function with 1/N size intervalls and N corner points as parameters - * y[N] ------- + * y[N-1] ------- * / * / * y[1] / @@ -186,7 +186,7 @@ const T interpolateN(const T &value, const T(&y)[N]) /* * Constant, piecewise linear, constant function with N corner points as parameters - * y[N] ------- + * y[N-1] ------- * / * / * y[1] / @@ -194,7 +194,7 @@ const T interpolateN(const T &value, const T(&y)[N]) * / * / * y[0] ------- - * x[0] x[1] ... x[N] + * x[0] x[1] ... x[N-1] * Note: x[N] corner coordinates have to be sorted in ascending order */ template @@ -202,7 +202,7 @@ const T interpolateNXY(const T &value, const T(&x)[N], const T(&y)[N]) { size_t index = 0; - while (value > x[index + 1] && index < N) { + while ((value > x[index + 1]) && (index < (N - 2))) { index++; }