13#ifndef OPTIMIST_COST_FUNCTION_HH
14#define OPTIMIST_COST_FUNCTION_HH
29 template <
typename Real, Integer N,
typename DerivedFunction>
36 static_assert(N !=
static_cast<Integer>(0),
37 "Are you sure you want to a zero-dimensional system of equations?");
38 static_assert(N !=
static_cast<Integer>(1),
39 "C'mon, let's not kid ourselves. Use a scalar function...");
57 std::string
name()
const {
return static_cast<const DerivedFunction *
>(
this)->name_impl();}
66 static_cast<const DerivedFunction *
>(
this)->evaluate_impl(x, out);
76 static_cast<const DerivedFunction *
>(
this)->first_derivative_impl(x, out);
86 static_cast<const DerivedFunction *
>(
this)->second_derivative_impl(x, out);
typename Function< Real, N, 1, DerivedFunction >::InputType Vector
Definition CostFunction.hh:42
typename Function< Real, N, 1, DerivedFunction >::FirstDerivativeType RowVector
Definition CostFunction.hh:45
CostFunction()
Definition CostFunction.hh:51
std::string name() const
Definition CostFunction.hh:57
void gradient(const Vector &x, RowVector &out) const
Definition CostFunction.hh:74
void hessian(const Vector &x, Matrix &out) const
Definition CostFunction.hh:84
typename Function< Real, N, 1, DerivedFunction >::SecondDerivativeType Matrix
Definition CostFunction.hh:46
void evaluate(const Vector &x, Vector &out) const
Definition CostFunction.hh:64
std::conditional_t< FunInDim==1 &&FunOutDim==1, Real, std::conditional_t< FunInDim==1||FunOutDim==1, Eigen::Matrix< Real, FunInDim, FunInDim >, std::vector< Eigen::Matrix< Real, FunInDim, FunInDim > > > > SecondDerivativeType
Definition Function.hh:47
typename std::conditional_t< FunInDim==1, Real, Eigen::Vector< Real, FunInDim > > InputType
Definition Function.hh:42
std::conditional_t< FunInDim==1 &&FunOutDim==1, Real, Eigen::Matrix< Real, FunOutDim, FunInDim > > FirstDerivativeType
Definition Function.hh:46
Function()
Definition Function.hh:59
Namespace for the Optimist library.
Definition Optimist.hh:87
OPTIMIST_DEFAULT_INTEGER_TYPE Integer
The Integer type as used for the API.
Definition Optimist.hh:95