aligator  0.16.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
explicit-dynamics-direct-sum.hpp
Go to the documentation of this file.
1
3#pragma once
4
7
8namespace aligator {
9
15template <typename _Scalar>
17 using Scalar = _Scalar;
23
24 struct Data;
25
26 DirectSumExplicitDynamicsTpl(xyz::polymorphic<Base> f,
27 xyz::polymorphic<Base> g);
28
29 void forward(const ConstVectorRef &x, const ConstVectorRef &u,
30 BaseData &data) const override;
31
32 void dForward(const ConstVectorRef &x, const ConstVectorRef &u,
33 BaseData &data) const override;
34
35 shared_ptr<BaseData> createData() const override {
36 return std::make_shared<Data>(*this);
37 }
38
39 xyz::polymorphic<Base> f_, g_;
40
41private:
44 CartesianProduct product_space_;
45};
46
47template <typename Scalar>
52
53template <typename Scalar>
54auto directSum(xyz::polymorphic<ExplicitDynamicsModelTpl<Scalar>> const &m1,
55 xyz::polymorphic<ExplicitDynamicsModelTpl<Scalar>> const &m2) {
57}
58
59#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
60extern template struct DirectSumExplicitDynamicsTpl<context::Scalar>;
61#endif
62} // namespace aligator
Main package namespace.
auto directSum(xyz::polymorphic< CostAbstractTpl< Scalar > > const &c1, xyz::polymorphic< CostAbstractTpl< Scalar > > const &c2)
The cartesian product of two or more manifolds.
Data(DirectSumExplicitDynamicsTpl const &model)
shared_ptr< BaseData > createData() const override
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const override
Evaluate the forward discrete dynamics.
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const override
Compute the Jacobians of the forward dynamics.
aligator::CartesianProductTpl< Scalar > CartesianProduct
DirectSumExplicitDynamicsTpl(xyz::polymorphic< Base > f, xyz::polymorphic< Base > g)
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Explicit forward dynamics model .
ExplicitDynamicsModelTpl(const polymorphic< Manifold > &space, const int nu)
Constructor requires providing the next state's manifold.
Base class for manifolds, to use in cost funcs, solvers...