C4-continuous interpolation using quintic splines. More...
Functions | |
std::vector< double > | getCoeff (const std::vector< double > &samples, bool oddExtension=false) |
Generate quintic spline coefficients for a set of uniformly-spaced samples. More... | |
__hostanddev__ double | value (const double *coeff, double x) |
Compute value of quintic spline. Warning: x is not range-checked. More... | |
__hostanddev__ double | deriv (const double *coeff, double x) |
Compute derivative (w.r.t x) of quintic spline. Warning: x is not range-checked. More... | |
__hostanddev__ void | valueGrad (double E_value, double *E_coeff, double x) |
Gradient propagation corresponding to value() More... | |
C4-continuous interpolation using quintic splines.
__hostanddev__ double QuinticSpline::deriv | ( | const double * | coeff, |
double | x | ||
) |
Compute derivative (w.r.t x) of quintic spline. Warning: x is not range-checked.
coeff | pointer to coefficient array generated by getCoeff |
x | location to evaluate spline in the continuous range [0, nCoeff-1) |
std::vector<double> QuinticSpline::getCoeff | ( | const std::vector< double > & | samples, |
bool | oddExtension = false |
||
) |
Generate quintic spline coefficients for a set of uniformly-spaced samples.
samples | An array of uniformly-spaced samples |
oddExtension | The boundary condition at the first sample is odd/even for oddExtension=true/false respectively. Natural boundary conditions (third and fourth derivatives zero) are imposed on the last sample. |
__hostanddev__ double QuinticSpline::value | ( | const double * | coeff, |
double | x | ||
) |
Compute value of quintic spline. Warning: x is not range-checked.
coeff | pointer to coefficient array generated by getCoeff |
x | location to evaluate spline in the continuous range [0, nCoeff-1) |
__hostanddev__ void QuinticSpline::valueGrad | ( | double | E_value, |
double * | E_coeff, | ||
double | x | ||
) |
Gradient propagation corresponding to value()
E_value | Input derivative with respect to value |
E_coeff |