6#include <proxsuite-nlp/third-party/polymorphic_cxx14.hpp>
14template <
typename _Scalar>
struct DynamicsModelTpl {
59 virtual void evaluate(
const ConstVectorRef &x,
const ConstVectorRef &u,
60 const ConstVectorRef &xn,
Data &)
const = 0;
63 const ConstVectorRef &u,
64 const ConstVectorRef &xn,
Data &)
const = 0;
67 const ConstVectorRef &u,
68 const ConstVectorRef &xn,
69 const ConstVectorRef &lbda,
115#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
116#include "aligator/core/dynamics.txx"
DynamicsDataTpl(const DynamicsModelTpl< Scalar > &model)
MatrixXs jac_buffer_
Full Jacobian.
MatrixRef Jx_
Jacobian with respect to .
virtual ~DynamicsDataTpl()=default
MatrixRef Jy_
Jacobian with respect to .
VectorXs value_
Function value.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
DynamicsDataTpl(const int ndx1, const int nu, const int ndx2)
MatrixRef Ju_
Jacobian with respect to .
const int nvar
Total number of variables.
Dynamics model: describes system dynamics through an implicit relation .
const int ndx1
State space dimension.
virtual void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, Data &) const =0
DynamicsDataTpl< Scalar > Data
const Manifold & space() const
State space for the input.
virtual void computeJacobians(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, Data &) const =0
virtual bool isExplicit() const
Check if this dynamics model is implicit or explicit.
DynamicsModelTpl(xyz::polymorphic< Manifold > space, const int nu)
Constructor for dynamics.
const int ndx2
Next state space dimension.
virtual void computeVectorHessianProducts(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, const ConstVectorRef &lbda, Data &data) const
xyz::polymorphic< Manifold > space_next_
State space for the output of this dynamics model.
DynamicsModelTpl(xyz::polymorphic< Manifold > space, const int nu, xyz::polymorphic< Manifold > space_next)
Constructor for dynamics. This constructor assumes same dimension for the current and next state.
const Manifold & space_next() const
State space for the output of this dynamics model.
virtual shared_ptr< Data > createData() const
virtual ~DynamicsModelTpl()=default
xyz::polymorphic< Manifold > space_
State space for the input.
const int nu
Control dimension.
ManifoldAbstractTpl< Scalar > Manifold
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)