BSplinebasis
Loading...
Searching...
No Matches
Public Member Functions | List of all members
bspline::integration::BilinearForm< O1, O2, > Class Template Referencefinal

A bilinear form with user-provided operators. More...

#include <BilinearForm.h>

Public Member Functions

 BilinearForm (O1 o1, O2 o2)
 Constructor with two user-provided operators.
 
 BilinearForm (O2 o2)
 Constructor with one user-provided operator.
 
 BilinearForm ()
 Constructor without a user-provided operator.
 
template<typename T , size_t ordera, size_t orderb>
T evaluate (const Spline< T, ordera > &a, const Spline< T, orderb > &b) const
 Evaluates the bilinear form for two particular splines.
 
template<typename T , size_t ordera, size_t orderb>
T operator() (const Spline< T, ordera > &a, const Spline< T, orderb > &b) const
 

Detailed Description

template<typename O1, typename O2, std::enable_if_t< operators::are_operators_v< O1, O2 >, bool > = true>
class bspline::integration::BilinearForm< O1, O2, >

A bilinear form with user-provided operators.

Represents the bilinear form

\[\left\langle a,\, b\right\rangle =
\left\langle \hat{O}_1\,a\,\middle|\,\hat{O}_2\,b\right\rangle =
\int\limits_{-\infty}^{\infty} \mathrm{d}x~\left[\hat{O}_1\,a(x)\right]
\,\,\left[\hat{O}_2\,b(x)\right] \]

with the operators $\hat{O}_1,\,\hat{O}_2$ applied to the two splines.

Template Parameters
O1The type of the operator applied to the first spline.
O2The type of the operator applied to the second spline.

Constructor & Destructor Documentation

◆ BilinearForm() [1/3]

template<typename O1 , typename O2 , std::enable_if_t< operators::are_operators_v< O1, O2 >, bool > = true>
bspline::integration::BilinearForm< O1, O2, >::BilinearForm ( O1  o1,
O2  o2 
)
inline

Constructor with two user-provided operators.

Constructor constructing a BilinearForm from the two operatos.

Parameters
o1The operator acting on the first (left) spline.
o2The operator acting on the second (right) spline.

◆ BilinearForm() [2/3]

template<typename O1 , typename O2 , std::enable_if_t< operators::are_operators_v< O1, O2 >, bool > = true>
bspline::integration::BilinearForm< O1, O2, >::BilinearForm ( O2  o2)
inlineexplicit

Constructor with one user-provided operator.

Constructor constructing a BilinearForm from only the $\hat{O}_2$ operator. The $\hat{O}_1$-operator is default constructed.

Parameters
o2The operator acting on the second (right) spline.

◆ BilinearForm() [3/3]

template<typename O1 , typename O2 , std::enable_if_t< operators::are_operators_v< O1, O2 >, bool > = true>
bspline::integration::BilinearForm< O1, O2, >::BilinearForm ( )
inline

Constructor without a user-provided operator.

Default constructor which default constructs both operators.

Member Function Documentation

◆ evaluate()

template<typename O1 , typename O2 , std::enable_if_t< operators::are_operators_v< O1, O2 >, bool > = true>
template<typename T , size_t ordera, size_t orderb>
T bspline::integration::BilinearForm< O1, O2, >::evaluate ( const Spline< T, ordera > &  a,
const Spline< T, orderb > &  b 
) const
inline

Evaluates the bilinear form for two particular splines.

Parameters
aThe first (left) spline.
bThe second (right) spline.
Template Parameters
TThe datatype of the splines.
orderaThe order of the first (left) spline.
orderbThe order of the second (right) spline.
Exceptions
BSplineExceptionIf the two splines are defined on different grids.
Returns
The value of the bilinear form for the two splines.

◆ operator()()

template<typename O1 , typename O2 , std::enable_if_t< operators::are_operators_v< O1, O2 >, bool > = true>
template<typename T , size_t ordera, size_t orderb>
T bspline::integration::BilinearForm< O1, O2, >::operator() ( const Spline< T, ordera > &  a,
const Spline< T, orderb > &  b 
) const
inline

Alias for BilinearForm::evaluate().

Evaluates the bilinear form for two particular splines.

Parameters
aThe first (left) spline.
bThe second (right) spline.
Template Parameters
TThe datatype of the splines.
orderaThe order of the first (left) spline.
orderbThe order of the second (right) spline.
Exceptions
BSplineExceptionIf the two splines are defined on different grids.
Returns
The value of the bilinear form for the two splines.

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