11#ifndef QUGAR_IMPL_DOMAIN_FUNCTION_HPP
12#define QUGAR_IMPL_DOMAIN_FUNCTION_HPP
26#include <algoim/interval.hpp>
44 template<
int N>
using Interval = ::algoim::Interval<N>;
48 template<
typename T>
using Value = std::conditional_t<range == 1, T, Vector<T, range>>;
Domain functions.
Definition domain_function.hpp:41
DomainFunc(DomainFunc &&)=default
virtual Gradient< real > grad(const Point< dim > &point) const=0
static const int num_hessian
Definition domain_function.hpp:55
virtual Hessian< real > hessian(const Point< dim > &point) const=0
DomainFunc & operator=(DomainFunc &&)=default
virtual Value< Interval< dim > > operator()(const Point< dim, Interval< dim > > &point) const=0
DomainFunc(const DomainFunc &)=default
Vector< Value< T >, num_hessian > Hessian
Hessian (symmetric type).
Definition domain_function.hpp:59
DomainFunc()=default
Default constructor.
std::conditional_t< range==1, T, Vector< T, range > > Value
Value type.
Definition domain_function.hpp:48
virtual Gradient< Interval< dim > > grad(const Point< dim, Interval< dim > > &point) const=0
Vector< Value< T >, dim > Gradient
Gradient type.
Definition domain_function.hpp:52
virtual Value< real > operator()(const Point< dim > &point) const=0
virtual ~DomainFunc()=default
DomainFunc & operator=(const DomainFunc &)=default
::algoim::Interval< N > Interval
Algoim's interval alias.
Definition domain_function.hpp:44
Definition affine_transf.hpp:28
FuncSign
Definition domain_function.hpp:33
@ negative
Definition domain_function.hpp:33
@ positive
Definition domain_function.hpp:33
@ undetermined
Definition domain_function.hpp:33
DomainFunc< dim, 1 > ScalarFunc
Alias for scalar functions.
Definition domain_function.hpp:111
ScalarFunc< dim > ImplicitFunc
Alias for implicit functions.
Definition domain_function.hpp:114
::algoim::uvector< T, dim > Vector
Class representing a vector.
Definition vector.hpp:31
Vector< T, dim > Point
Class representing a dim-dimensional Point.
Definition point.hpp:34
Definition and implementation of Point class.