QUGaR 0.0.4
Loading...
Searching...
No Matches
qugar::impl::funcs::DimLinear< dim > Class Template Reference

dim-linear function. More...

#include <impl_funcs_lib.hpp>

Inheritance diagram for qugar::impl::funcs::DimLinear< dim >:
[legend]
Collaboration diagram for qugar::impl::funcs::DimLinear< dim >:
[legend]

Public Member Functions

 DimLinear (const std::array< real, num_coeffs > &coefs)
 Constructs a new dim-linear function from its coefficients.
 
 DimLinear (const std::array< real, num_coeffs > &coefs, const AffineTransf< dim > &transf)
 Constructs a new dim-linear function from its coefficients.
 
- Public Member Functions inherited from qugar::impl::funcs::FuncWithAffineTransf< dim >
 FuncWithAffineTransf ()
 Default constructor. Creates and stores an identity transformation.
 
 FuncWithAffineTransf (const AffineTransf< dim > &transf)
 Constructs a new class storing the given transf.
 
- Public Member Functions inherited from qugar::impl::DomainFunc< dim, range >
 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.
 

Public Attributes

 declare_impl_func_virtual_interface
 

Static Public Attributes

static const int num_coeffs = _impl::pow(2, dim)
 Number of coefficients.
 
- Static Public Attributes inherited from qugar::impl::DomainFunc< dim, range >
static const int num_hessian = dim * (dim + 1) / 2
 Number of Hessian (symmetric) components.
 

Private Attributes

std::array< real, num_coeffscoefs_
 Coefficients of the dim-linear expression.
 

Additional Inherited Members

- Public Types inherited from qugar::impl::DomainFunc< dim, range >
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).
 
- Protected Attributes inherited from qugar::impl::funcs::FuncWithAffineTransf< dim >
AffineTransf< dim > transf_
 Stored affine transformation.
 

Detailed Description

template<int dim>
class qugar::impl::funcs::DimLinear< dim >

dim-linear function.

Template Parameters
dimParametric dimension.

Constructor & Destructor Documentation

◆ DimLinear() [1/2]

template<int dim>
qugar::impl::funcs::DimLinear< dim >::DimLinear ( const std::array< real, num_coeffs > & coefs)
explicit

Constructs a new dim-linear function from its coefficients.

Parameters
coefsFunction coefficients.

◆ DimLinear() [2/2]

template<int dim>
qugar::impl::funcs::DimLinear< dim >::DimLinear ( const std::array< real, num_coeffs > & coefs,
const AffineTransf< dim > & transf )

Constructs a new dim-linear function from its coefficients.

Parameters
coefsCoefficients defining the function (stored in lexicographical ordering).
transfAffine transformation applied to the dim-linear function. It may rotate the axes, translate the square, and/or scale it (iso or anisotropically).

Member Data Documentation

◆ coefs_

template<int dim>
std::array<real, num_coeffs> qugar::impl::funcs::DimLinear< dim >::coefs_
private

Coefficients of the dim-linear expression.

◆ declare_impl_func_virtual_interface

template<int dim>
qugar::impl::funcs::DimLinear< dim >::declare_impl_func_virtual_interface

◆ num_coeffs

template<int dim>
const int qugar::impl::funcs::DimLinear< dim >::num_coeffs = _impl::pow(2, dim)
static

Number of coefficients.


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