ALFI
Advanced Library for Function Interpolation
Loading...
Searching...
No Matches
alfi::spline::PolyEqvSpline< Number, Container > Class Template Reference

#include <polyeqv.h>

Public Types

enum class  PolynomialType {
  LAGRANGE ,
  IMPROVED_LAGRANGE ,
  NEWTON ,
  Default = LAGRANGE
}
 
enum class  OptimizationType {
  ACCURACY ,
  SPEED ,
  Default = ACCURACY
}
 
enum class  EvaluationType {
  IGNORE_NANS_AND_PREVIOUS ,
  IGNORE_NANS ,
  NOT_IGNORE_NANS ,
  Default = IGNORE_NANS_AND_PREVIOUS
}
 

Public Member Functions

 PolyEqvSpline ()=default
 
template<typename ContainerXType>
 PolyEqvSpline (ContainerXType &&X, const Container< Number > &Y, PolynomialType polynomial_type=PolynomialType::Default, OptimizationType optimization_type=OptimizationType::Default)
 
 PolyEqvSpline (const PolyEqvSpline &other)=default
 
 PolyEqvSpline (PolyEqvSpline &&other) noexcept=default
 
PolyEqvSplineoperator= (const PolyEqvSpline &other)=default
 
PolyEqvSplineoperator= (PolyEqvSpline &&other) noexcept=default
 
template<typename ContainerXType>
void construct (ContainerXType &&X, const Container< Number > &Y, PolynomialType polynomial_type=PolynomialType::Default, OptimizationType optimization_type=OptimizationType::Default, EvaluationType evaluation_type=EvaluationType::Default)
 
Number eval (Number x) const
 
Number eval (Number x, SizeT segment) const
 
Container< Number > eval (const Container< Number > &xx, bool sorted=true) const
 
Number operator() (Number x) const
 
Container< Number > operator() (const Container< Number > &xx) const
 
PolynomialType polynomial_type () const
 
OptimizationType optimization_type () const
 
EvaluationType evaluation_type () const
 
const Container< Number > & X () const &
 
Container< Number > && X () &&
 
const Container< Number > & coeffs () const &
 
Container< Number > && coeffs () &&
 
std::pair< SizeT, SizeTsegment (SizeT index) const
 

Static Public Member Functions

static Container< Number > compute_coeffs (const Container< Number > &X, const Container< Number > &Y, PolynomialType polynomial_type=PolynomialType::Default, OptimizationType optimization_type=OptimizationType::Default)
 

Member Enumeration Documentation

◆ PolynomialType

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
enum class alfi::spline::PolyEqvSpline::PolynomialType
strong
Enumerator
LAGRANGE 
IMPROVED_LAGRANGE 
NEWTON 
Default 

◆ OptimizationType

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
enum class alfi::spline::PolyEqvSpline::OptimizationType
strong
Enumerator
ACCURACY 
SPEED 
Default 

◆ EvaluationType

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
enum class alfi::spline::PolyEqvSpline::EvaluationType
strong
Enumerator
IGNORE_NANS_AND_PREVIOUS 
IGNORE_NANS 
NOT_IGNORE_NANS 
Default 

Constructor & Destructor Documentation

◆ PolyEqvSpline() [1/4]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
alfi::spline::PolyEqvSpline< Number, Container >::PolyEqvSpline ( )
default

◆ PolyEqvSpline() [2/4]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
template<typename ContainerXType>
alfi::spline::PolyEqvSpline< Number, Container >::PolyEqvSpline ( ContainerXType && X,
const Container< Number > & Y,
PolynomialType polynomial_type = PolynomialType::Default,
OptimizationType optimization_type = OptimizationType::Default )
inline

◆ PolyEqvSpline() [3/4]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
alfi::spline::PolyEqvSpline< Number, Container >::PolyEqvSpline ( const PolyEqvSpline< Number, Container > & other)
default

◆ PolyEqvSpline() [4/4]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
alfi::spline::PolyEqvSpline< Number, Container >::PolyEqvSpline ( PolyEqvSpline< Number, Container > && other)
defaultnoexcept

Member Function Documentation

◆ compute_coeffs()

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
static Container< Number > alfi::spline::PolyEqvSpline< Number, Container >::compute_coeffs ( const Container< Number > & X,
const Container< Number > & Y,
PolynomialType polynomial_type = PolynomialType::Default,
OptimizationType optimization_type = OptimizationType::Default )
inlinestatic

◆ operator=() [1/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
PolyEqvSpline & alfi::spline::PolyEqvSpline< Number, Container >::operator= ( const PolyEqvSpline< Number, Container > & other)
default

◆ operator=() [2/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
PolyEqvSpline & alfi::spline::PolyEqvSpline< Number, Container >::operator= ( PolyEqvSpline< Number, Container > && other)
defaultnoexcept

◆ construct()

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
template<typename ContainerXType>
void alfi::spline::PolyEqvSpline< Number, Container >::construct ( ContainerXType && X,
const Container< Number > & Y,
PolynomialType polynomial_type = PolynomialType::Default,
OptimizationType optimization_type = OptimizationType::Default,
EvaluationType evaluation_type = EvaluationType::Default )
inline

◆ eval() [1/3]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Number alfi::spline::PolyEqvSpline< Number, Container >::eval ( Number x) const
inline

◆ eval() [2/3]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Number alfi::spline::PolyEqvSpline< Number, Container >::eval ( Number x,
SizeT segment ) const
inline

◆ eval() [3/3]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Container< Number > alfi::spline::PolyEqvSpline< Number, Container >::eval ( const Container< Number > & xx,
bool sorted = true ) const
inline

◆ operator()() [1/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Number alfi::spline::PolyEqvSpline< Number, Container >::operator() ( Number x) const
inline

◆ operator()() [2/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Container< Number > alfi::spline::PolyEqvSpline< Number, Container >::operator() ( const Container< Number > & xx) const
inline

◆ polynomial_type()

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
PolynomialType alfi::spline::PolyEqvSpline< Number, Container >::polynomial_type ( ) const
inline

◆ optimization_type()

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
OptimizationType alfi::spline::PolyEqvSpline< Number, Container >::optimization_type ( ) const
inline

◆ evaluation_type()

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
EvaluationType alfi::spline::PolyEqvSpline< Number, Container >::evaluation_type ( ) const
inline

◆ X() [1/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
const Container< Number > & alfi::spline::PolyEqvSpline< Number, Container >::X ( ) const &
inline

◆ X() [2/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Container< Number > && alfi::spline::PolyEqvSpline< Number, Container >::X ( ) &&
inline

◆ coeffs() [1/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
const Container< Number > & alfi::spline::PolyEqvSpline< Number, Container >::coeffs ( ) const &
inline

◆ coeffs() [2/2]

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
Container< Number > && alfi::spline::PolyEqvSpline< Number, Container >::coeffs ( ) &&
inline

◆ segment()

template<typename Number = DefaultNumber, template< typename, typename... > class Container = DefaultContainer>
std::pair< SizeT, SizeT > alfi::spline::PolyEqvSpline< Number, Container >::segment ( SizeT index) const
inline

The documentation for this class was generated from the following file: