OpenMS
CubicSpline2d Class Reference

cubic spline interpolation as described in R.L. Burden, J.D. Faires, Numerical Analysis, 4th ed. PWS-Kent, 1989, ISBN 0-53491-585-X, pp. 126-131. More...

#include <OpenMS/MATH/MISC/CubicSpline2d.h>

Collaboration diagram for CubicSpline2d:
[legend]

Public Member Functions

 CubicSpline2d (const std::vector< double > &x, const std::vector< double > &y)
 constructor of spline interpolation More...
 
 CubicSpline2d (const std::map< double, double > &m)
 constructor of spline interpolation More...
 
double eval (double x) const
 evaluates the spline at position x More...
 
double derivative (double x) const
 evaluates first derivative of spline at position x More...
 
double derivatives (double x, unsigned order) const
 evaluates derivative of spline at position x More...
 

Private Member Functions

void init_ (const std::vector< double > &x, const std::vector< double > &y)
 initialize the spline More...
 

Private Attributes

std::vector< double > a_
 constant spline coefficients More...
 
std::vector< double > b_
 linear spline coefficients More...
 
std::vector< double > c_
 quadratic spline coefficients More...
 
std::vector< double > d_
 cubic spline coefficients More...
 
std::vector< double > x_
 knots More...
 

Detailed Description

cubic spline interpolation as described in R.L. Burden, J.D. Faires, Numerical Analysis, 4th ed. PWS-Kent, 1989, ISBN 0-53491-585-X, pp. 126-131.

Construction of the spline takes by far the most time. Evaluating it is rather fast (one evaluation is about 50x faster than construction – depending on number of points etc.).

Constructor & Destructor Documentation

◆ CubicSpline2d() [1/2]

CubicSpline2d ( const std::vector< double > &  x,
const std::vector< double > &  y 
)

constructor of spline interpolation

The coordinates must match by index. Both vectors must be the same size and sorted in x. Sortedness in x is required for

See also
SplinePackage.
Parameters
xx-coordinates of input data points (knots)
yy-coordinates of input data points

◆ CubicSpline2d() [2/2]

CubicSpline2d ( const std::map< double, double > &  m)

constructor of spline interpolation

Parameters
m(x,y) coordinates of input data points

Member Function Documentation

◆ derivative()

double derivative ( double  x) const

evaluates first derivative of spline at position x

Parameters
xx-position

◆ derivatives()

double derivatives ( double  x,
unsigned  order 
) const

evaluates derivative of spline at position x

Parameters
xx-position
orderorder of the derivative Only order 1 or 2 make sense for cubic splines.

◆ eval()

double eval ( double  x) const

evaluates the spline at position x

Parameters
xx-position

◆ init_()

void init_ ( const std::vector< double > &  x,
const std::vector< double > &  y 
)
private

initialize the spline

Parameters
xx-coordinates of input data points (knots)
yy-coordinates of input data points

Member Data Documentation

◆ a_

std::vector<double> a_
private

constant spline coefficients

◆ b_

std::vector<double> b_
private

linear spline coefficients

◆ c_

std::vector<double> c_
private

quadratic spline coefficients

◆ d_

std::vector<double> d_
private

cubic spline coefficients

◆ x_

std::vector<double> x_
private

knots