5#include <proxsuite-nlp/modelling/spaces/vector-space.hpp>
30 if (A.cols() !=
space->ndx()) {
31 ALIGATOR_DOMAIN_ERROR(
32 "A.cols() should be equal to space.ndx()! (got {:d} and {:d})",
33 A.cols(), space->ndx());
35 bool rows_ok = (A.rows() ==
space->ndx()) && (B.rows() ==
space->ndx()) &&
36 (c.rows() ==
space->ndx());
46 LinearODETpl(
const MatrixXs &A,
const MatrixXs &B,
const VectorXs &c)
48 proxsuite::nlp::VectorSpaceTpl<
Scalar>((int)A.rows())),
51 void forward(
const ConstVectorRef &x,
const ConstVectorRef &u,
53 void dForward(
const ConstVectorRef &x,
const ConstVectorRef &u,
55 virtual shared_ptr<ContinuousDynamicsDataTpl<Scalar>>
createData()
const {
66#include "aligator/modelling/dynamics/linear-ode.hxx"
68#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
69#include "aligator/modelling/dynamics/linear-ode.txx"
#define ALIGATOR_DOMAIN_ERROR(...)
Namespace for modelling system dynamics.
Defines a class representing ODEs.
virtual shared_ptr< Data > createData() const
const Manifold & space() const
Return a reference to the state space.
Data struct for ContinuousDynamicsAbstractTpl.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
ODEAbstractTpl< Scalar > Base
ManifoldAbstractTpl< Scalar > Manifold
xyz::polymorphic< Manifold > ManifoldPtr
LinearODETpl(const MatrixXs &A, const MatrixXs &B, const VectorXs &c)
void forward(const ConstVectorRef &x, const ConstVectorRef &u, ODEData &data) const
Evaluate the ODE vector field: this returns the value of .
virtual shared_ptr< ContinuousDynamicsDataTpl< Scalar > > createData() const
Create a data holder instance.
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, ODEData &data) const
Evaluate the vector field Jacobians.
LinearODETpl(const ManifoldPtr &space, const MatrixXs &A, const MatrixXs &B, const VectorXs &c)
Standard constructor with state space, matrices and constant term .
ContinuousDynamicsDataTpl< Scalar > ODEData
Base class for ODE dynamics .