15template <
typename _Scalar>
17 : std::enable_shared_from_this<StageFunctionTpl<_Scalar>> {
21 using Data = StageFunctionDataTpl<Scalar>;
44 virtual void evaluate(
const ConstVectorRef &x,
const ConstVectorRef &u,
45 const ConstVectorRef &y,
Data &data)
const = 0;
62 const ConstVectorRef &u,
63 const ConstVectorRef &y,
Data &data)
const = 0;
74 const ConstVectorRef &u,
75 const ConstVectorRef &y,
76 const ConstVectorRef &lbda,
86template <
typename _Scalar>
90 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
127 template <
typename T>
129 const StageFunctionDataTpl<T> &self);
139#include "aligator/core/function-abstract.hxx"
141#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
142#include "aligator/core/function-abstract.txx"
Mixin which makes a class/class hierarchy cloneable.
MatrixRef Jx_
Jacobian with respect to .
MatrixXs jac_buffer_
Full Jacobian.
MatrixXs vhp_buffer_
Vector-Hessian product buffer.
StageFunctionDataTpl(const int ndx1, const int nu, const int ndx2, const int nr)
Default constructor.
const int nvar
Total number of variables.
friend std::ostream & operator<<(std::ostream &oss, const StageFunctionDataTpl< T > &self)
MatrixRef Ju_
Jacobian with respect to .
virtual StageFunctionDataTpl * clone_impl() const
MatrixRef Jy_
Jacobian with respect to .
virtual ~StageFunctionDataTpl()=default
VectorXs value_
Function value.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
Class representing ternary functions .
const int ndx2
Next state dimension.
virtual ~StageFunctionTpl()=default
const int nu
Control dimension.
virtual void computeJacobians(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, Data &data) const =0
Compute Jacobians of this function.
virtual void computeVectorHessianProducts(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, const ConstVectorRef &lbda, Data &data) const
Compute the vector-hessian products of this function.
virtual shared_ptr< Data > createData() const
Instantiate a Data object.
const int ndx1
Current state dimension.
virtual void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, Data &data) const =0
Evaluate the function.
const int nr
Function codimension.
StageFunctionTpl(const int ndx, const int nu, const int nr)
Constructor where ndx2 = ndx1.
StageFunctionTpl(const int ndx1, const int nu, const int ndx2, const int nr)
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)