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
Default move constructor.
virtual Gradient< real > grad(const Point< dim > &point) const =0
Gradient evaluator operator.
static const int num_hessian
Number of Hessian (symmetric) components.
Definition domain_function.hpp:55
virtual Hessian< real > hessian(const Point< dim > &point) const =0
Hessian evaluator operator.
DomainFunc & operator=(DomainFunc &&)=default
Default move assignment operator.
virtual Value< Interval< dim > > operator()(const Point< dim, Interval< dim > > &point) const =0
Evaluator operator.
DomainFunc(const DomainFunc &)=default
Default copy constructor.
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
Gradient evaluator operator.
Vector< Value< T >, dim > Gradient
Gradient type.
Definition domain_function.hpp:52
virtual Value< real > operator()(const Point< dim > &point) const =0
Evaluator operator.
virtual ~DomainFunc()=default
Default virtual destructor.
DomainFunc & operator=(const DomainFunc &)=default
Default copy assignment operator.
::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
::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.