The cartesian product of two or more manifolds. More...
#include <proxsuite-nlp/modelling/spaces/cartesian-product.hpp>
Public Types | |
| using | Scalar = _Scalar |
| using | Base = ManifoldAbstractTpl<Scalar> |
Public Types inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar > | |
| using | Scalar |
| using | TangentSpaceType |
| Typedef for the tangent space, as a manifold. | |
Public Member Functions | |
| const Base & | getComponent (std::size_t i) const |
| std::size_t | numComponents () const |
| template<class Concrete> | |
| void | addComponent (const Concrete &c) |
| void | addComponent (const CartesianProductTpl &other) |
| CartesianProductTpl (const CartesianProductTpl &)=default | |
| CartesianProductTpl & | operator= (const CartesianProductTpl &)=default |
| CartesianProductTpl (CartesianProductTpl &&)=default | |
| CartesianProductTpl & | operator= (CartesianProductTpl &&)=default |
| CartesianProductTpl (const std::vector< polymorphic< Base > > &components) | |
| CartesianProductTpl (std::initializer_list< polymorphic< Base > > components) | |
| CartesianProductTpl (const polymorphic< Base > &left, const polymorphic< Base > &right) | |
| int | nx () const |
| Get manifold representation dimension. | |
| int | ndx () const |
| Get manifold tangent space dimension. | |
| VectorXs | neutral () const |
| Get the neutral element \(e \in M\) from the manifold (if this makes sense). | |
| VectorXs | rand () const |
| Sample a random point \(x \in M\) on the manifold. | |
| bool | isNormalized (const ConstVectorRef &x) const |
Check if the input vector x is a viable element of the manifold. | |
| std::vector< VectorRef > | split (VectorRef x) const |
| std::vector< ConstVectorRef > | split (const ConstVectorRef &x) const |
| std::vector< VectorRef > | split_vector (VectorRef v) const |
| std::vector< ConstVectorRef > | split_vector (const ConstVectorRef &v) const |
| VectorXs | merge (const std::vector< VectorXs > &xs) const |
| VectorXs | merge_vector (const std::vector< VectorXs > &vs) const |
| void | integrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const |
| Perform the manifold integration operation. | |
| void | difference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const |
| Implementation of the manifold retraction operation. | |
| void | Jintegrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const |
| void | JintegrateTransport (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const |
| Perform the parallel transport operation. | |
| void | Jdifference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, MatrixRef Jout, int arg) const |
Public Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar > | |
| const TangentSpaceType | tangentSpace () const |
| Return an object representing the tangent space as a manifold. | |
| void | integrate (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const |
| Manifold integration operation \(x \oplus v\). | |
| void | Jintegrate (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const |
| Jacobian of the integation operation. | |
| void | difference (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const |
| Manifold difference/retraction operation \(x_1 \ominus x_0\). | |
| void | Jdifference (const ConstVectorRef &x0, const ConstVectorRef &x1, MatrixRef Jout, int arg) const |
| Jacobian of the retraction operation. | |
| void | interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const |
| VectorXs | integrate (const ConstVectorRef &x, const ConstVectorRef &v) const |
| Manifold integration operation \(x \oplus v\). | |
| VectorXs | difference (const ConstVectorRef &x0, const ConstVectorRef &x1) const |
| Manifold difference/retraction operation \(x_1 \ominus x_0\). | |
| VectorXs | interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u) const |
| Interpolation operation. | |
Public Attributes | |
| Scalar | |
Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar > | |
| Scalar | |
Additional Inherited Members | |
Static Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar > | |
| static constexpr int | Options |
| Scalar type. | |
Protected Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar > | |
| virtual void | interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const |
| Interpolation operation. | |
The cartesian product of two or more manifolds.
Definition at line 14 of file cartesian-product.hpp.
| using proxsuite::nlp::CartesianProductTpl< _Scalar >::Scalar = _Scalar |
Definition at line 15 of file cartesian-product.hpp.
| using proxsuite::nlp::CartesianProductTpl< _Scalar >::Base = ManifoldAbstractTpl<Scalar> |
Definition at line 17 of file cartesian-product.hpp.
|
inline |
Definition at line 49 of file cartesian-product.hpp.
|
inline |
Definition at line 52 of file cartesian-product.hpp.
|
inline |
Definition at line 55 of file cartesian-product.hpp.
|
inline |
Definition at line 24 of file cartesian-product.hpp.
|
inline |
Definition at line 26 of file cartesian-product.hpp.
|
inline |
Definition at line 28 of file cartesian-product.hpp.
|
inline |
Definition at line 37 of file cartesian-product.hpp.
|
inlinevirtual |
Get manifold representation dimension.
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 61 of file cartesian-product.hpp.
|
inlinevirtual |
Get manifold tangent space dimension.
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 69 of file cartesian-product.hpp.
|
virtual |
Get the neutral element \(e \in M\) from the manifold (if this makes sense).
Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 9 of file cartesian-product.hxx.
|
virtual |
Sample a random point \(x \in M\) on the manifold.
Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 21 of file cartesian-product.hxx.
|
virtual |
Check if the input vector x is a viable element of the manifold.
Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 33 of file cartesian-product.hxx.
|
inline |
Definition at line 89 of file cartesian-product.hpp.
|
inline |
Definition at line 93 of file cartesian-product.hpp.
|
inline |
Definition at line 97 of file cartesian-product.hpp.
|
inline |
Definition at line 101 of file cartesian-product.hpp.
| auto proxsuite::nlp::CartesianProductTpl< Scalar >::merge | ( | const std::vector< VectorXs > & | xs | ) | const |
Definition at line 72 of file cartesian-product.hxx.
| auto proxsuite::nlp::CartesianProductTpl< Scalar >::merge_vector | ( | const std::vector< VectorXs > & | vs | ) | const |
Definition at line 85 of file cartesian-product.hxx.
|
virtual |
Perform the manifold integration operation.
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 98 of file cartesian-product.hxx.
|
virtual |
Implementation of the manifold retraction operation.
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 118 of file cartesian-product.hxx.
|
virtual |
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 138 of file cartesian-product.hxx.
|
virtual |
Perform the parallel transport operation.
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 160 of file cartesian-product.hxx.
|
virtual |
Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar >.
Definition at line 180 of file cartesian-product.hxx.
| proxsuite::nlp::CartesianProductTpl< _Scalar >::Scalar |
Definition at line 18 of file cartesian-product.hpp.