votca 2024.2-dev
|
An Akima Spline Class. More...
#include <akimaspline.h>
Public Member Functions | |
AkimaSpline ()=default | |
~AkimaSpline () override=default | |
double | getSlope (double m1, double m2, double m3, double m4) |
Calculate the slope according to the original Akima paper ("A New
Method of Interpolation and Smooth Curve Fitting Based on Local
Procedures") | |
void | Interpolate (const Eigen::VectorXd &x, const Eigen::VectorXd &y) override |
Calculate interpolating spline for given (x,y) values. Points on resulting spline can be obtained via Calculate(). | |
void | Fit (const Eigen::VectorXd &x, const Eigen::VectorXd &y) override |
Fit spline through noisy (x,y) values. Points on resulting fitted spline can be obtained via Calculate(). | |
double | Calculate (double r) override |
Calculate spline function value for a given x value on the spline created by Interpolate() or Fit() | |
double | CalculateDerivative (double r) override |
Calculate y value for a given x value on the derivative of the spline created by function Interpolate or Fit. | |
Eigen::VectorXd | Calculate (const Eigen::VectorXd &x) |
Calculate spline function values for given x values on the spline created by Interpolate() or Fit() | |
Eigen::VectorXd | CalculateDerivative (const Eigen::VectorXd &x) |
Calculate y values for given x values on the derivative of the spline created by function Interpolate or Fit. | |
Public Member Functions inherited from votca::tools::Spline | |
Spline ()=default | |
virtual | ~Spline ()=default |
void | setBC (eBoundary bc) |
Set the boundary type of the spline. | |
void | setBCInt (Index bc) |
Set the boundary type of the spline. | |
double | getGridPoint (int i) |
Get the grid point of certain index. | |
Eigen::VectorXd | Calculate (const Eigen::VectorXd &x) |
Calculate spline function values for given x values on the spline created by Interpolate() or Fit() | |
Eigen::VectorXd | CalculateDerivative (const Eigen::VectorXd &x) |
Calculate y values for given x values on the derivative of the spline created by function Interpolate or Fit. | |
void | Print (std::ostream &out, double interval) |
Print spline values (using Calculate()) on output "out" on the entire grid in steps of "interval". | |
Index | getInterval (double r) |
Determine the index of the interval containing value r. | |
Index | GenerateGrid (double min, double max, double h) |
Generate the grid for fitting from "min" to "max" in steps of "h". | |
Eigen::VectorXd & | getX () |
Get the grid array x. | |
const Eigen::VectorXd & | getX () const |
Protected Attributes | |
Eigen::VectorXd | p0 |
Eigen::VectorXd | p1 |
Eigen::VectorXd | p2 |
Eigen::VectorXd | p3 |
Eigen::VectorXd | t |
Protected Attributes inherited from votca::tools::Spline | |
eBoundary | boundaries_ = eBoundary::splineNormal |
Get the spline data f_. | |
Eigen::VectorXd | r_ |
Additional Inherited Members | |
Public Types inherited from votca::tools::Spline | |
enum | eBoundary { splineNormal = 0 , splinePeriodic = 1 , splineDerivativeZero = 2 } |
enum for type of boundary condition More... | |
An Akima Spline Class.
does Akima interpolation based on the paper "A new method of interpolation and smooth curve fitting based on local procedures"
Fitting is not supported. In order to fit data, do linear fitting and interpolate the linear fitted values by Akima interpolation.
Definition at line 44 of file akimaspline.h.
|
default |
|
overridedefault |
Eigen::VectorXd votca::tools::Spline::Calculate | ( | const Eigen::VectorXd & | x | ) |
Calculate spline function values for given x values on the spline created by Interpolate() or Fit()
x | vector of data values |
|
overridevirtual |
Calculate spline function value for a given x value on the spline created by Interpolate() or Fit()
x | data value |
Implements votca::tools::Spline.
Definition at line 161 of file akimaspline.cc.
Eigen::VectorXd votca::tools::Spline::CalculateDerivative | ( | const Eigen::VectorXd & | x | ) |
|
overridevirtual |
Calculate y value for a given x value on the derivative of the spline created by function Interpolate or Fit.
x | data value |
Implements votca::tools::Spline.
Definition at line 168 of file akimaspline.cc.
|
overridevirtual |
Fit spline through noisy (x,y) values. Points on resulting fitted spline can be obtained via Calculate().
x | values of data to be fitted |
y | values of data to be fitted both vectors must be of same size |
Implements votca::tools::Spline.
Definition at line 157 of file akimaspline.cc.
double votca::tools::AkimaSpline::getSlope | ( | double | m1, |
double | m2, | ||
double | m3, | ||
double | m4 ) |
Calculate the slope according to the original Akima paper ("A New Method of Interpolation and Smooth Curve Fitting Based on Local Procedures")
m1 | slope of the first line segment connecting the five data points |
m2 | slope of the second line segment connecting the five data points |
m3 | slope of the third line segment connecting the five data points |
m4 | slope of the fourth line segment connecting the five data points |
Definition at line 174 of file akimaspline.cc.
|
overridevirtual |
Calculate interpolating spline for given (x,y) values. Points on resulting spline can be obtained via Calculate().
x | values of data to be interpolated |
y | values of data to be interpolated both vectors must be of same size |
Implements votca::tools::Spline.
Definition at line 30 of file akimaspline.cc.
|
protected |
Definition at line 88 of file akimaspline.h.
|
protected |
Definition at line 89 of file akimaspline.h.
|
protected |
Definition at line 90 of file akimaspline.h.
|
protected |
Definition at line 91 of file akimaspline.h.
|
protected |
Definition at line 92 of file akimaspline.h.