DGtal 1.4.0
|
Aim: This class implements Lagrange basis functions and Lagrange interpolation. More...
#include <DGtal/math/LagrangeInterpolation.h>
Public Types | |
typedef LagrangeInterpolation< TEuclideanRing > | Self |
typedef TEuclideanRing | Ring |
typedef DGtal::MPolynomial< 1, Ring > | Polynomial |
The monovariate polynomial type. | |
typedef std::size_t | Size |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CEuclideanRing< Ring >)) | |
~LagrangeInterpolation ()=default | |
LagrangeInterpolation () | |
LagrangeInterpolation (const std::vector< Ring > &xvalues) | |
LagrangeInterpolation (const LagrangeInterpolation &other)=default | |
LagrangeInterpolation (LagrangeInterpolation &&other)=default | |
LagrangeInterpolation & | operator= (const LagrangeInterpolation &other)=default |
LagrangeInterpolation & | operator= (LagrangeInterpolation &&other)=default |
Size | size () const |
Size | degree () const |
Ring | denominator () const |
void | init (const std::vector< Ring > &xvalues) |
Polynomial | polynomial (const std::vector< Ring > &yvalues) |
Polynomial | basis (Size i) const |
void | selfDisplay (std::ostream &that_stream) const |
bool | OK () const |
Protected Attributes | |
std::vector< Ring > | myX |
The vector of X-values (abscissa) | |
Ring | myDeterminant |
The determinant of the Vandermonde matrix corresponding to X-values. | |
std::vector< Polynomial > | myLagrangeBasis |
The Lagrange polynomial basis corresponding to X-values. | |
Aim: This class implements Lagrange basis functions and Lagrange interpolation.
Description of class 'LagrangeInterpolation'
TEuclideanRing | any model of CEuclideanRing like int, double, etc. |
Definition at line 62 of file LagrangeInterpolation.h.
typedef DGtal::MPolynomial< 1, Ring > DGtal::LagrangeInterpolation< TEuclideanRing >::Polynomial |
The monovariate polynomial type.
Definition at line 72 of file LagrangeInterpolation.h.
typedef TEuclideanRing DGtal::LagrangeInterpolation< TEuclideanRing >::Ring |
Definition at line 68 of file LagrangeInterpolation.h.
typedef LagrangeInterpolation< TEuclideanRing > DGtal::LagrangeInterpolation< TEuclideanRing >::Self |
Definition at line 67 of file LagrangeInterpolation.h.
typedef std::size_t DGtal::LagrangeInterpolation< TEuclideanRing >::Size |
Definition at line 73 of file LagrangeInterpolation.h.
|
default |
Destructor.
|
inline |
Constructor. The object is invalid.
Definition at line 86 of file LagrangeInterpolation.h.
|
inline |
Constructs the Lagrange interpolation object with its x-values
xvalues | the vector of X-values, corresponding to the abscissa where the interpolation will take place. |
Definition at line 94 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::init().
|
default |
Copy constructor.
other | the object to clone. |
|
default |
Move constructor.
other | the object to clone. |
|
inline |
i | any value between 0 included and size() excluded. |
Definition at line 199 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::myLagrangeBasis, and DGtal::LagrangeInterpolation< TEuclideanRing >::size().
Referenced by DGtal::LagrangeInterpolation< TEuclideanRing >::selfDisplay().
DGtal::LagrangeInterpolation< TEuclideanRing >::BOOST_CONCEPT_ASSERT | ( | (concepts::CEuclideanRing< Ring >) | ) |
|
inline |
size()-1
) Definition at line 132 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::size().
|
inline |
Definition at line 138 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::myDeterminant.
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::init().
|
inline |
Initializes the Lagrange interpolation object with its x-values, and computes the corresponding Lagrange Basis.
xvalues | the vector of X-values, corresponding to the abscissa where the interpolation will take place. |
Definition at line 148 of file LagrangeInterpolation.h.
References DGtal::mmonomial(), DGtal::LagrangeInterpolation< TEuclideanRing >::myDeterminant, DGtal::LagrangeInterpolation< TEuclideanRing >::myLagrangeBasis, DGtal::LagrangeInterpolation< TEuclideanRing >::myX, and DGtal::LagrangeInterpolation< TEuclideanRing >::size().
Referenced by DGtal::LagrangeInterpolation< TEuclideanRing >::LagrangeInterpolation().
|
inline |
Checks the validity/consistency of the object.
Definition at line 224 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::myDeterminant.
|
default |
Assignment.
other | the object to copy. |
|
default |
Move assignment.
other | the object to move. |
|
inline |
[in] | yvalues | the y-values corresponding to the current x-values, in the same order. |
Definition at line 182 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::myLagrangeBasis, and DGtal::LagrangeInterpolation< TEuclideanRing >::size().
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::init().
|
inline |
Writes/Displays the object on an output stream.
that_stream | the output stream where the object is written. |
Definition at line 212 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::basis(), DGtal::LagrangeInterpolation< TEuclideanRing >::myDeterminant, and DGtal::LagrangeInterpolation< TEuclideanRing >::size().
Referenced by DGtal::operator<<().
|
inline |
Definition at line 126 of file LagrangeInterpolation.h.
References DGtal::LagrangeInterpolation< TEuclideanRing >::myX.
Referenced by DGtal::LagrangeInterpolation< TEuclideanRing >::basis(), DGtal::LagrangeInterpolation< TEuclideanRing >::degree(), DGtal::LagrangeInterpolation< TEuclideanRing >::init(), DGtal::LagrangeInterpolation< TEuclideanRing >::polynomial(), and DGtal::LagrangeInterpolation< TEuclideanRing >::selfDisplay().
|
protected |
The determinant of the Vandermonde matrix corresponding to X-values.
Definition at line 235 of file LagrangeInterpolation.h.
Referenced by DGtal::LagrangeInterpolation< TEuclideanRing >::denominator(), DGtal::LagrangeInterpolation< TEuclideanRing >::init(), DGtal::LagrangeInterpolation< TEuclideanRing >::OK(), and DGtal::LagrangeInterpolation< TEuclideanRing >::selfDisplay().
|
protected |
The Lagrange polynomial basis corresponding to X-values.
Definition at line 237 of file LagrangeInterpolation.h.
Referenced by DGtal::LagrangeInterpolation< TEuclideanRing >::basis(), DGtal::LagrangeInterpolation< TEuclideanRing >::init(), and DGtal::LagrangeInterpolation< TEuclideanRing >::polynomial().
|
protected |
The vector of X-values (abscissa)
Definition at line 233 of file LagrangeInterpolation.h.
Referenced by DGtal::LagrangeInterpolation< TEuclideanRing >::init(), and DGtal::LagrangeInterpolation< TEuclideanRing >::size().