45 for (uint8_t i=1; i<n-1; i++) {
46 float p = 0.5f * z[i-1] + 2.0f;
48 if (p < 0.01f && p >= 0.0
f) {
50 }
else if (p > -0.01
f && p < 0.0
f) {
53 float p_inv = 1.0f / p;
55 u[i] = x[i+1] + x[i-1] - 2.0f * x[i];
56 u[i] = (3.0f * u[i] - 0.5f * u[i-1]) * p_inv;
60 for (uint8_t i=n-1; i>0; i--) {
61 z[i] = z[i] * z[i+1] + u[i];
64 for (uint8_t i=0; i<n-1; i++) {
void splinterp5(const float x[5], float out[4][4])