LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
#include <Spline.h>
Public Types | |
enum | Symmetry { Unknown , Odd , Even } |
Public Member Functions | |
TautSpline (std::vector< double > const &x, std::vector< double > const &y, double const gamma=0, Symmetry type=Unknown) | |
Construct cubic spline interpolant to given data. | |
void | interpolate (std::vector< double > const &x, std::vector< double > &y) const |
Interpolate a Spline. | |
void | derivative (std::vector< double > const &x, std::vector< double > &dydx) const |
Find the derivative of a Spline. | |
std::vector< double > | roots (double const value, double const x0, double const x1) const |
Find the roots of Spline - val = 0 in the range [x0, x1). | |
Protected Member Functions | |
void | _allocateSpline (int const nknot) |
Allocate the storage a Spline needs. | |
Protected Attributes | |
std::vector< double > | _knots |
std::vector< std::vector< double > > | _coeffs |
lsst::afw::math::detail::TautSpline::TautSpline | ( | std::vector< double > const & | x, |
std::vector< double > const & | y, | ||
double const | gamma = 0, | ||
Symmetry | type = Unknown ) |
Construct cubic spline interpolant to given data.
Adapted from A Practical Guide to Splines by C. de Boor (N.Y. : Springer-Verlag, 1978). (His routine tautsp converted to C by Robert Lupton and then to C++ by an older and grayer Robert Lupton)
If gamma
> 0, additional knots are introduced where needed to make the interpolant more flexible locally. This avoids extraneous inflection points typical of cubic spline interpolation at knots to rapidly changing data. Values for gamma are:
x | points where function's specified |
y | values of function at tau[] |
gamma | control extra knots. See main description for details. |
type | specify the desired symmetry (e.g. Even) |
pex::exceptions::InvalidParameterError | Thrown if x and y do not have the same length or do not have at least two points |
Definition at line 86 of file Spline.cc.
|
protectedinherited |
Allocate the storage a Spline needs.
Definition at line 21 of file Spline.cc.
|
inherited |
Find the derivative of a Spline.
[in] | x | points to evaluate derivative at |
[out] | dydx | derivatives at x |
Definition at line 57 of file Spline.cc.
|
inherited |
[in] | x | points to interpolate at |
[out] | y | values of spline interpolation at x |
Definition at line 29 of file Spline.cc.
|
inherited |
Find the roots of Spline - val = 0 in the range [x0, x1).
Return a vector of all the roots found
value | desired value |
x0,x1 | specify desired range is [x0,x1) |
Definition at line 1226 of file Spline.cc.
|
protectedinherited |
|
protectedinherited |