QUGaR 0.0.4
Loading...
Searching...
No Matches
qugar::impl::DomainFunc< dim, range > Class Template Referenceabstract

Domain functions. More...

#include <domain_function.hpp>

Inheritance diagram for qugar::impl::DomainFunc< dim, range >:
[legend]

Public Types

template<int N>
using Interval = ::algoim::Interval<N>
 Algoim's interval alias.
 
template<typename T >
using Value = std::conditional_t<range == 1, T, Vector<T, range>>
 Value type.
 
template<typename T >
using Gradient = Vector<Value<T>, dim>
 Gradient type.
 
template<typename T >
using Hessian = Vector<Value<T>, num_hessian>
 Hessian (symmetric type).
 

Public Member Functions

 DomainFunc ()=default
 Default constructor.
 
 DomainFunc (const DomainFunc &)=default
 Default copy constructor.
 
 DomainFunc (DomainFunc &&)=default
 Default move constructor.
 
DomainFuncoperator= (const DomainFunc &)=default
 Default copy assignment operator.
 
DomainFuncoperator= (DomainFunc &&)=default
 Default move assignment operator.
 
virtual ~DomainFunc ()=default
 Default virtual destructor.
 
virtual Value< realoperator() (const Point< dim > &point) const =0
 Evaluator operator.
 
virtual Value< Interval< dim > > operator() (const Point< dim, Interval< dim > > &point) const =0
 Evaluator operator.
 
virtual Gradient< realgrad (const Point< dim > &point) const =0
 Gradient evaluator operator.
 
virtual Gradient< Interval< dim > > grad (const Point< dim, Interval< dim > > &point) const =0
 Gradient evaluator operator.
 
virtual Hessian< realhessian (const Point< dim > &point) const =0
 Hessian evaluator operator.
 

Static Public Attributes

static const int num_hessian = dim * (dim + 1) / 2
 Number of Hessian (symmetric) components.
 

Detailed Description

template<int dim, int range>
class qugar::impl::DomainFunc< dim, range >

Domain functions.

Template Parameters
dimParametric dimension.
rangeImage dimension.
TType.

Member Typedef Documentation

◆ Gradient

template<int dim, int range>
template<typename T >
using qugar::impl::DomainFunc< dim, range >::Gradient = Vector<Value<T>, dim>

Gradient type.

Template Parameters
TType of the input coordinates.

◆ Hessian

template<int dim, int range>
template<typename T >
using qugar::impl::DomainFunc< dim, range >::Hessian = Vector<Value<T>, num_hessian>

Hessian (symmetric type).

Template Parameters
TType of the input coordinates.

◆ Interval

template<int dim, int range>
template<int N>
using qugar::impl::DomainFunc< dim, range >::Interval = ::algoim::Interval<N>

Algoim's interval alias.

◆ Value

template<int dim, int range>
template<typename T >
using qugar::impl::DomainFunc< dim, range >::Value = std::conditional_t<range == 1, T, Vector<T, range>>

Value type.

Template Parameters
TType of the input coordinates.

Constructor & Destructor Documentation

◆ DomainFunc() [1/3]

template<int dim, int range>
qugar::impl::DomainFunc< dim, range >::DomainFunc ( )
default

Default constructor.

◆ DomainFunc() [2/3]

template<int dim, int range>
qugar::impl::DomainFunc< dim, range >::DomainFunc ( const DomainFunc< dim, range > & )
default

Default copy constructor.

◆ DomainFunc() [3/3]

template<int dim, int range>
qugar::impl::DomainFunc< dim, range >::DomainFunc ( DomainFunc< dim, range > && )
default

Default move constructor.

◆ ~DomainFunc()

template<int dim, int range>
virtual qugar::impl::DomainFunc< dim, range >::~DomainFunc ( )
virtualdefault

Default virtual destructor.

Member Function Documentation

◆ grad() [1/2]

template<int dim, int range>
virtual Gradient< real > qugar::impl::DomainFunc< dim, range >::grad ( const Point< dim > & point) const
nodiscardpure virtual

Gradient evaluator operator.

Parameters
pointPoint at which the function's gradient is evaluated.
Returns
Function gradient at point.
Note
This is a purely virtual method and must be implemented in derived classes.

Implemented in qugar::impl::BezierTP< dim, range >, qugar::impl::BezierTP< 2, 1 >, qugar::impl::BezierTP< 3, 1 >, qugar::impl::BezierTP< dim, 1 >, and qugar::impl::MonomialsTP< dim, range >.

◆ grad() [2/2]

template<int dim, int range>
virtual Gradient< Interval< dim > > qugar::impl::DomainFunc< dim, range >::grad ( const Point< dim, Interval< dim > > & point) const
nodiscardpure virtual

Gradient evaluator operator.

Parameters
pointPoint at which the function's gradient is evaluated.
Returns
Function gradient at point.
Note
This is a purely virtual method and must be implemented in derived classes.

Implemented in qugar::impl::BezierTP< dim, range >, qugar::impl::BezierTP< 2, 1 >, qugar::impl::BezierTP< 3, 1 >, qugar::impl::BezierTP< dim, 1 >, and qugar::impl::MonomialsTP< dim, range >.

◆ hessian()

template<int dim, int range>
virtual Hessian< real > qugar::impl::DomainFunc< dim, range >::hessian ( const Point< dim > & point) const
nodiscardpure virtual

Hessian evaluator operator.

Parameters
pointPoint at which the function's hessian is evaluated.
Returns
Function hessian at point.
Note
This is a purely virtual method and must be implemented in derived classes.

Implemented in qugar::impl::BezierTP< dim, range >, qugar::impl::BezierTP< 2, 1 >, qugar::impl::BezierTP< 3, 1 >, qugar::impl::BezierTP< dim, 1 >, and qugar::impl::MonomialsTP< dim, range >.

◆ operator()() [1/2]

template<int dim, int range>
virtual Value< real > qugar::impl::DomainFunc< dim, range >::operator() ( const Point< dim > & point) const
nodiscardpure virtual

Evaluator operator.

Parameters
pointPoint at which the function is evaluated.
Returns
Function value at point.
Note
This is a purely virtual method and must be implemented in derived classes.

Implemented in qugar::impl::BezierTP< dim, range >, qugar::impl::BezierTP< 2, 1 >, qugar::impl::BezierTP< 3, 1 >, qugar::impl::BezierTP< dim, 1 >, and qugar::impl::MonomialsTP< dim, range >.

◆ operator()() [2/2]

template<int dim, int range>
virtual Value< Interval< dim > > qugar::impl::DomainFunc< dim, range >::operator() ( const Point< dim, Interval< dim > > & point) const
nodiscardpure virtual

Evaluator operator.

Parameters
pointPoint at which the function is evaluated.
Returns
Function value at point.
Note
This is a purely virtual method and must be implemented in derived classes.

Implemented in qugar::impl::BezierTP< dim, range >, qugar::impl::BezierTP< 2, 1 >, qugar::impl::BezierTP< 3, 1 >, qugar::impl::BezierTP< dim, 1 >, and qugar::impl::MonomialsTP< dim, range >.

◆ operator=() [1/2]

template<int dim, int range>
DomainFunc & qugar::impl::DomainFunc< dim, range >::operator= ( const DomainFunc< dim, range > & )
default

Default copy assignment operator.

◆ operator=() [2/2]

template<int dim, int range>
DomainFunc & qugar::impl::DomainFunc< dim, range >::operator= ( DomainFunc< dim, range > && )
default

Default move assignment operator.

Member Data Documentation

◆ num_hessian

template<int dim, int range>
const int qugar::impl::DomainFunc< dim, range >::num_hessian = dim * (dim + 1) / 2
static

Number of Hessian (symmetric) components.


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