5#include <proxsuite-nlp/modelling/spaces/vector-space.hpp>
30 if (A.cols() !=
space->ndx()) {
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(msg)
Defines a class representing ODEs.
virtual shared_ptr< Data > createData() const
const Manifold & space() const
Data struct for ContinuousDynamicsAbstractTpl.
Linear ordinary differential equation .
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
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 .
Base class for ODE dynamics .