Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
interpol::smooth_cubic_spline< T > Class Template Reference
+ Inheritance diagram for interpol::smooth_cubic_spline< T >:
+ Collaboration diagram for interpol::smooth_cubic_spline< T >:

Data Structures

class  matrix
 

Public Member Functions

template<typename iter >
 smooth_cubic_spline (iter i_begin, iter i_end)
 
template<typename iter >
 smooth_cubic_spline (iter i_begin, iter i_end, const limits< T > &x_lim_, const limits< T > &y_lim_, bool periodic_=false)
 
 smooth_cubic_spline (const std::initializer_list< point< T > > &I)
 
 smooth_cubic_spline (const std::initializer_list< point< T > > &I, const limits< T > &x_lim_, const limits< T > &y_lim_, bool periodic_=false)
 
operator() (T x) const
 

Private Types

using base = spline_base< T >
 
using vector = std::vector< T >
 
using size_type = typename std::vector< base_point< T > >::size_type
 

Private Member Functions

void init ()
 

Static Private Member Functions

static bool LU_factor (matrix &A)
 
static void LU_solve (const matrix &A, vector &b)
 
static bool gauss_solve (matrix &A, vector &b)
 

Private Attributes

bool periodic
 
std::vector< base_point< T > > points
 
limits< T > x_lim
 
limits< T > y_lim
 

Member Typedef Documentation

◆ base

template<typename T >
using interpol::smooth_cubic_spline< T >::base = spline_base<T>
private

◆ size_type

template<typename T >
using interpol::spline_base< T >::size_type = typename std::vector<base_point<T> >::size_type
private

◆ vector

template<typename T >
using interpol::smooth_cubic_spline< T >::vector = std::vector<T>
private

Constructor & Destructor Documentation

◆ smooth_cubic_spline() [1/4]

template<typename T >
template<typename iter >
interpol::smooth_cubic_spline< T >::smooth_cubic_spline ( iter  i_begin,
iter  i_end 
)
inline

◆ smooth_cubic_spline() [2/4]

template<typename T >
template<typename iter >
interpol::smooth_cubic_spline< T >::smooth_cubic_spline ( iter  i_begin,
iter  i_end,
const limits< T > &  x_lim_,
const limits< T > &  y_lim_,
bool  periodic_ = false 
)
inline

◆ smooth_cubic_spline() [3/4]

template<typename T >
interpol::smooth_cubic_spline< T >::smooth_cubic_spline ( const std::initializer_list< point< T > > &  I)
inline

◆ smooth_cubic_spline() [4/4]

template<typename T >
interpol::smooth_cubic_spline< T >::smooth_cubic_spline ( const std::initializer_list< point< T > > &  I,
const limits< T > &  x_lim_,
const limits< T > &  y_lim_,
bool  periodic_ = false 
)
inline

Member Function Documentation

◆ gauss_solve()

template<typename T >
static bool interpol::smooth_cubic_spline< T >::gauss_solve ( matrix A,
vector b 
)
inlinestaticprivate

◆ init()

◆ LU_factor()

template<typename T >
static bool interpol::smooth_cubic_spline< T >::LU_factor ( matrix A)
inlinestaticprivate

◆ LU_solve()

template<typename T >
static void interpol::smooth_cubic_spline< T >::LU_solve ( const matrix A,
vector b 
)
inlinestaticprivate

◆ operator()()

Field Documentation

◆ periodic

template<typename T >
bool interpol::spline_base< T >::periodic
private

◆ points

template<typename T >
std::vector<base_point<T> > interpol::spline_base< T >::points
private

◆ x_lim

template<typename T >
limits<T> interpol::spline_base< T >::x_lim
private

◆ y_lim

template<typename T >
limits<T> interpol::spline_base< T >::y_lim
private

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