OpenMM
|
SplineFitter provides routines for performing cubic spline interpolation. More...
#include <SplineFitter.h>
Static Public Member Functions | |
static void | createNaturalSpline (const std::vector< double > &x, const std::vector< double > &y, std::vector< double > &deriv) |
Fit a natural cubic spline to a set of data points. More... | |
static void | createPeriodicSpline (const std::vector< double > &x, const std::vector< double > &y, std::vector< double > &deriv) |
Fit a periodic cubic spline to a set of data points. More... | |
static double | evaluateSpline (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &deriv, double t) |
Evaluate a 1D spline generated by one of the other methods in this class. More... | |
static double | evaluateSplineDerivative (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &deriv, double t) |
Evaluate the derivative of a 1D spline generated by one of the other methods in this class. More... | |
static void | create2DNaturalSpline (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &values, std::vector< std::vector< double > > &c) |
Fit a natural cubic spline surface f(x,y) to a 2D set of data points. More... | |
static double | evaluate2DSpline (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &values, const std::vector< std::vector< double > > &c, double u, double v) |
Evaluate a 2D spline generated by one of the other methods in this class. More... | |
static void | evaluate2DSplineDerivatives (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &values, const std::vector< std::vector< double > > &c, double u, double v, double &dx, double &dy) |
Evaluate the derivatives of a 2D spline generated by one of the other methods in this class. More... | |
static void | create3DNaturalSpline (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, const std::vector< double > &values, std::vector< std::vector< double > > &c) |
Fit a natural cubic spline surface f(x,y,z) to a 3D set of data points. More... | |
static double | evaluate3DSpline (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, const std::vector< double > &values, const std::vector< std::vector< double > > &c, double u, double v, double w) |
Evaluate a 3D spline generated by one of the other methods in this class. More... | |
static void | evaluate3DSplineDerivatives (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, const std::vector< double > &values, const std::vector< std::vector< double > > &c, double u, double v, double w, double &dx, double &dy, double &dz) |
Evaluate the derivatives of a 3D spline generated by one of the other methods in this class. More... | |
SplineFitter provides routines for performing cubic spline interpolation.
|
static |
Fit a natural cubic spline surface f(x,y) to a 2D set of data points.
The resulting spline interpolates all the data points, has a continuous second derivative everywhere, and has a second derivative of 0 at the boundary.
x | the values of the first independent variable at the data points to interpolate. They must be strictly increasing: x[i] > x[i-1]. |
y | the values of the second independent variable at the data points to interpolate. They must be strictly increasing: y[i] > y[i-1]. |
values | the values of the dependent variable at the data points to interpolate. They must be ordered so that values[i+xsize*j] = f(x[i],y[j]), where xsize is the length of x. |
c | on exit, this contains the spline coefficients at each of the data points |
|
static |
Fit a natural cubic spline surface f(x,y,z) to a 3D set of data points.
The resulting spline interpolates all the data points, has a continuous second derivative everywhere, and has a second derivative of 0 at the boundary.
x | the values of the first independent variable at the data points to interpolate. They must be strictly increasing: x[i] > x[i-1]. |
y | the values of the second independent variable at the data points to interpolate. They must be strictly increasing: y[i] > y[i-1]. |
z | the values of the third independent variable at the data points to interpolate. They must be strictly increasing: z[i] > z[i-1]. |
values | the values of the dependent variable at the data points to interpolate. They must be ordered so that values[i+xsize*j+xsize*ysize*k] = f(x[i],y[j],z[k]), where xsize is the length of x and ysize is the length of y. |
c | on exit, this contains the spline coefficients at each of the data points |
|
static |
Fit a natural cubic spline to a set of data points.
The resulting spline interpolates all the data points, has a continuous second derivative everywhere, and has a second derivative of 0 at its end points.
x | the values of the independent variable at the data points to interpolate. They must be strictly increasing: x[i] > x[i-1]. |
y | the values of the dependent variable at the data points to interpolate |
deriv | on exit, this contains the second derivative of the spline at each of the data points |
|
static |
Fit a periodic cubic spline to a set of data points.
The resulting spline interpolates all the data points, has a continuous second derivative everywhere, and has identical second derivatives at the end points.
x | the values of the independent variable at the data points to interpolate. They must be strictly increasing: x[i] > x[i-1]. |
y | the values of the dependent variable at the data points to interpolate. The first and last entries must be identical. |
deriv | on exit, this contains the second derivative of the spline at each of the data points |
|
static |
Evaluate a 2D spline generated by one of the other methods in this class.
x | the values of the first independent variable at the data points to interpolate |
y | the values of the second independent variable at the data points to interpolate |
values | the values of the dependent variable at the data points to interpolate |
c | the vector of spline coefficients that was calculated by one of the other methods |
u | the value of the first independent variable at which to evaluate the spline |
v | the value of the second independent variable at which to evaluate the spline |
|
static |
Evaluate the derivatives of a 2D spline generated by one of the other methods in this class.
x | the values of the first independent variable at the data points to interpolate |
y | the values of the second independent variable at the data points to interpolate |
values | the values of the dependent variable at the data points to interpolate |
c | the vector of spline coefficients that was calculated by one of the other methods |
u | the value of the first independent variable at which to evaluate the spline |
v | the value of the second independent variable at which to evaluate the spline |
dx | on exit, the x derivative of the spline at the specified point |
dy | on exit, the y derivative of the spline at the specified point |
|
static |
Evaluate a 3D spline generated by one of the other methods in this class.
x | the values of the first independent variable at the data points to interpolate |
y | the values of the second independent variable at the data points to interpolate |
z | the values of the third independent variable at the data points to interpolate |
values | the values of the dependent variable at the data points to interpolate |
c | the vector of spline coefficients that was calculated by one of the other methods |
u | the value of the first independent variable at which to evaluate the spline |
v | the value of the second independent variable at which to evaluate the spline |
w | the value of the third independent variable at which to evaluate the spline |
|
static |
Evaluate the derivatives of a 3D spline generated by one of the other methods in this class.
x | the values of the first independent variable at the data points to interpolate |
y | the values of the second independent variable at the data points to interpolate |
z | the values of the third independent variable at the data points to interpolate |
values | the values of the dependent variable at the data points to interpolate |
c | the vector of spline coefficients that was calculated by one of the other methods |
u | the value of the first independent variable at which to evaluate the spline |
v | the value of the second independent variable at which to evaluate the spline |
w | the value of the third independent variable at which to evaluate the spline |
dx | on exit, the x derivative of the spline at the specified point |
dy | on exit, the y derivative of the spline at the specified point |
dz | on exit, the z derivative of the spline at the specified point |
|
static |
Evaluate a 1D spline generated by one of the other methods in this class.
x | the values of the independent variable at the data points to interpolate |
y | the values of the dependent variable at the data points to interpolate |
deriv | the vector of second derivatives that was calculated by one of the other methods |
t | the value of the independent variable at which to evaluate the spline |
|
static |
Evaluate the derivative of a 1D spline generated by one of the other methods in this class.
x | the values of the independent variable at the data points to interpolate |
y | the values of the dependent variable at the data points to interpolate |
deriv | the vector of second derivatives that was calculated by one of the other methods |
t | the value of the independent variable at which to evaluate the spline |