SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::base::BsplineClenshawCurtisBasis< LT, IT > Class Template Reference

B-spline basis on Clenshaw-Curtis grids. More...

#include <BsplineClenshawCurtisBasis.hpp>

Inheritance diagram for sgpp::base::BsplineClenshawCurtisBasis< LT, IT >:
sgpp::base::Basis< LT, IT >

Public Member Functions

 BsplineClenshawCurtisBasis ()
 Default constructor.
 
 BsplineClenshawCurtisBasis (size_t degree)
 Constructor.
 
double clenshawCurtisPoint (LT l, IT i) const
 
void constructKnots (LT l, IT i)
 Construct the (p+2) Clenshaw-Curtis knots of a B-spline basis function and save them in xi.
 
double eval (LT l, IT i, double x) override
 
double evalDx (LT l, IT i, double x) override
 
double evalDxDx (LT l, IT i, double x)
 
size_t getDegree () const override
 
double getIntegral (LT l, IT i) override
 
double nonUniformBSpline (double x, size_t p, size_t k) const
 
double nonUniformBSplineDx (double x, size_t p, size_t k) const
 
double nonUniformBSplineDxDx (double x, size_t p, size_t k) const
 
 ~BsplineClenshawCurtisBasis () override
 Destructor.
 
- Public Member Functions inherited from sgpp::base::Basis< LT, IT >
virtual ~Basis ()
 Destructor.
 

Protected Attributes

BsplineBasis< LT, IT > bsplineBasis
 B-spline basis for B-spline evaluation.
 
ClenshawCurtisTableclenshawCurtisTable
 reference to the Clenshaw-Curtis cache table
 
DataVector coordinates
 
bool integrationInitialized = false
 
DataVector weights
 
std::vector< double > xi
 temporary helper vector of fixed size p+2 containing B-spline knots
 

Detailed Description

template<class LT, class IT>
class sgpp::base::BsplineClenshawCurtisBasis< LT, IT >

B-spline basis on Clenshaw-Curtis grids.

Constructor & Destructor Documentation

◆ BsplineClenshawCurtisBasis() [1/2]

template<class LT , class IT >
sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::BsplineClenshawCurtisBasis ( )
inline

Default constructor.

◆ BsplineClenshawCurtisBasis() [2/2]

template<class LT , class IT >
sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::BsplineClenshawCurtisBasis ( size_t  degree)
inlineexplicit

Constructor.

Parameters
degreeB-spline degree, must be odd (if it's even, degree - 1 is used)

◆ ~BsplineClenshawCurtisBasis()

template<class LT , class IT >
sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::~BsplineClenshawCurtisBasis ( )
inlineoverride

Destructor.

Member Function Documentation

◆ clenshawCurtisPoint()

template<class LT , class IT >
double sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::clenshawCurtisPoint ( LT  l,
IT  i 
) const
inline
Parameters
llevel of the grid point
iindex of the grid point
Returns
i-th Clenshaw-Curtis grid point with level l

References sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::clenshawCurtisTable, and sgpp::base::ClenshawCurtisTable::getPoint().

Referenced by sgpp::pde::OperationLaplaceBsplineClenshawCurtis::mult(), and sgpp::pde::OperationMatrixLTwoDotBsplineClenshawCurtis::mult().

◆ constructKnots()

◆ eval()

template<class LT , class IT >
double sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::eval ( LT  l,
IT  i,
double  x 
)
inlineoverridevirtual

◆ evalDx()

◆ evalDxDx()

template<class LT , class IT >
double sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::evalDxDx ( LT  l,
IT  i,
double  x 
)
inline

◆ getDegree()

template<class LT , class IT >
size_t sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::getDegree ( ) const
inlineoverridevirtual

◆ getIntegral()

◆ nonUniformBSpline()

template<class LT , class IT >
double sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::nonUniformBSpline ( double  x,
size_t  p,
size_t  k 
) const
inline

◆ nonUniformBSplineDx()

template<class LT , class IT >
double sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::nonUniformBSplineDx ( double  x,
size_t  p,
size_t  k 
) const
inline
Parameters
xevaluation point
pB-spline degree
kindex of B-spline in the knot sequence
Returns
value of derivative of non-uniform B-spline with knots \(\{\xi_k, ... \xi_{k+p+1}\}\)

References sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::nonUniformBSpline(), and sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::xi.

Referenced by sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::evalDx().

◆ nonUniformBSplineDxDx()

template<class LT , class IT >
double sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::nonUniformBSplineDxDx ( double  x,
size_t  p,
size_t  k 
) const
inline
Parameters
xevaluation point
pB-spline degree
kindex of B-spline in the knot sequence
Returns
value of 2nd derivative of non-uniform B-spline with knots \(\{\xi_k, ... \xi_{k+p+1}\}\)

References sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::nonUniformBSpline(), and sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::xi.

Referenced by sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::evalDxDx().

Member Data Documentation

◆ bsplineBasis

◆ clenshawCurtisTable

template<class LT , class IT >
ClenshawCurtisTable& sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::clenshawCurtisTable
protected

◆ coordinates

template<class LT , class IT >
DataVector sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::coordinates
protected

◆ integrationInitialized

template<class LT , class IT >
bool sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::integrationInitialized = false
protected

◆ weights

template<class LT , class IT >
DataVector sgpp::base::BsplineClenshawCurtisBasis< LT, IT >::weights
protected

◆ xi


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