API Documentation
Loading...
Searching...
No Matches
Spline< t_point_type > Class Template Reference

A spline is a function used to interpolate or smooth data. Splines are a series of polynomials joined at knots. More...

#include <Spline.hpp>

Collaboration diagram for Spline< t_point_type >:
[legend]

Public Member Functions

t_point_type deriv (uint04 order, fltp08 x) const
 
uint04 find_closest (fltp08 x) const
 
bool makeMonotonic ()
 
t_point_type operator() (fltp08 x) const
 
void setBoundary (SplineBoundaryType left, fltp08 left_value, SplineBoundaryType right, fltp08 right_value)
 
void setPoints (const Buffer< fltp08 > &x, const Buffer< t_point_type > &y, SplineType type)
 
Buffer< t_point_type > solve (t_point_type y, bool ignore_extrapolation) const
 
Buffer< t_point_type > solveCubic (t_point_type a, t_point_type b, t_point_type c, t_point_type d, int newton_iter) const
 
 Spline ()
 
 Spline (const Buffer< fltp08 > &X, const Buffer< t_point_type > &Y, SplineType type=SplineType::e_cspline, bool make_monotonic=false, SplineBoundaryType left=SplineBoundaryType::e_second_deriv, fltp08 left_value=0.0, SplineBoundaryType right=SplineBoundaryType::e_second_deriv, fltp08 right_value=0.0)
 
 Spline (const Buffer< t_point_type > &Y, SplineType type=SplineType::e_cspline, SplineBoundaryType left=SplineBoundaryType::e_second_deriv, fltp08 left_value=0.0, SplineBoundaryType right=SplineBoundaryType::e_second_deriv, fltp08 right_value=0.0)
 

Static Public Member Functions

static fltp08 getEPS ()
 
static Buffer< t_point_type > solveLinear (t_point_type a, t_point_type b)
 
static Buffer< t_point_type > solveQuadratic (t_point_type a, t_point_type b, t_point_type c, int newton_iter=0)
 

Protected Member Functions

void setCoeffsFromB ()
 

Protected Attributes

Buffer< t_point_type > m_b
 
Buffer< t_point_type > m_c
 
t_point_type m_c0
 
Buffer< t_point_type > m_d
 
SplineBoundaryType m_left = SplineBoundaryType::e_second_deriv
 
fltp08 m_left_value = 0.0
 
bool m_made_monotonic = false
 
SplineBoundaryType m_right = SplineBoundaryType::e_second_deriv
 
fltp08 m_right_value = 0.0
 
SplineType m_type = SplineType::e_cspline
 
Buffer< fltp08m_x
 
Buffer< t_point_type > m_y
 

Detailed Description

template<class t_point_type>
class NDEVR::Spline< t_point_type >

A spline is a function used to interpolate or smooth data. Splines are a series of polynomials joined at knots.


Constructor & Destructor Documentation

◆ Spline() [1/3]

template<class t_point_type >
Spline ( )
inline

◆ Spline() [2/3]

template<class t_point_type >
Spline ( const Buffer< t_point_type > & Y,
SplineType type = SplineType::e_cspline,
SplineBoundaryType left = SplineBoundaryType::e_second_deriv,
fltp08 left_value = 0.0,
SplineBoundaryType right = SplineBoundaryType::e_second_deriv,
fltp08 right_value = 0.0 )
inline

◆ Spline() [3/3]

template<class t_point_type >
Spline ( const Buffer< fltp08 > & X,
const Buffer< t_point_type > & Y,
SplineType type = SplineType::e_cspline,
bool make_monotonic = false,
SplineBoundaryType left = SplineBoundaryType::e_second_deriv,
fltp08 left_value = 0.0,
SplineBoundaryType right = SplineBoundaryType::e_second_deriv,
fltp08 right_value = 0.0 )
inline

Member Function Documentation

◆ deriv()

template<class t_point_type >
t_point_type deriv ( uint04 order,
fltp08 x ) const
inline

◆ find_closest()

template<class t_point_type >
uint04 find_closest ( fltp08 x) const
inline

◆ getEPS()

template<class t_point_type >
static fltp08 getEPS ( )
inlinestatic

◆ makeMonotonic()

template<class t_point_type >
bool makeMonotonic ( )
inline

◆ operator()()

template<class t_point_type >
t_point_type operator() ( fltp08 x) const
inline

◆ setBoundary()

template<class t_point_type >
void setBoundary ( SplineBoundaryType left,
fltp08 left_value,
SplineBoundaryType right,
fltp08 right_value )
inline

◆ setCoeffsFromB()

template<class t_point_type >
void setCoeffsFromB ( )
inlineprotected

◆ setPoints()

template<class t_point_type >
void setPoints ( const Buffer< fltp08 > & x,
const Buffer< t_point_type > & y,
SplineType type )
inline

◆ solve()

template<class t_point_type >
Buffer< t_point_type > solve ( t_point_type y,
bool ignore_extrapolation ) const
inline

◆ solveCubic()

template<class t_point_type >
Buffer< t_point_type > solveCubic ( t_point_type a,
t_point_type b,
t_point_type c,
t_point_type d,
int newton_iter ) const
inline

◆ solveLinear()

template<class t_point_type >
static Buffer< t_point_type > solveLinear ( t_point_type a,
t_point_type b )
inlinestatic

◆ solveQuadratic()

template<class t_point_type >
static Buffer< t_point_type > solveQuadratic ( t_point_type a,
t_point_type b,
t_point_type c,
int newton_iter = 0 )
inlinestatic

Member Data Documentation

◆ m_b

template<class t_point_type >
Buffer<t_point_type> m_b
protected

◆ m_c

template<class t_point_type >
Buffer<t_point_type> m_c
protected

◆ m_c0

template<class t_point_type >
t_point_type m_c0
protected

◆ m_d

template<class t_point_type >
Buffer<t_point_type> m_d
protected

◆ m_left

template<class t_point_type >
SplineBoundaryType m_left = SplineBoundaryType::e_second_deriv
protected

◆ m_left_value

template<class t_point_type >
fltp08 m_left_value = 0.0
protected

◆ m_made_monotonic

template<class t_point_type >
bool m_made_monotonic = false
protected

◆ m_right

template<class t_point_type >
SplineBoundaryType m_right = SplineBoundaryType::e_second_deriv
protected

◆ m_right_value

template<class t_point_type >
fltp08 m_right_value = 0.0
protected

◆ m_type

template<class t_point_type >
SplineType m_type = SplineType::e_cspline
protected

◆ m_x

template<class t_point_type >
Buffer<fltp08> m_x
protected

◆ m_y

template<class t_point_type >
Buffer<t_point_type> m_y
protected

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