Standard Euclidean vector space. More...
#include <aligator/core/vector-space.hpp>
Public Types | |
using | Scalar = _Scalar |
using | Base = ManifoldAbstractTpl<Scalar> |
![]() | |
using | Scalar = _Scalar |
using | TangentSpaceType = VectorSpaceTpl<Scalar, Eigen::Dynamic> |
Typedef for the tangent space, as a manifold. | |
Public Member Functions | |
ALIGATOR_DYNAMIC_TYPEDEFS (Scalar) | |
VectorSpaceTpl (const int dim) | |
Default constructor where the dimension is supplied. | |
template<int N = Dim, typename = typename std::enable_if_t<N != Eigen::Dynamic>> | |
VectorSpaceTpl () | |
Default constructor without arguments. | |
int | nx () const |
Get manifold representation dimension. | |
int | ndx () const |
Get manifold tangent space dimension. | |
template<int OtherDim> | |
VectorSpaceTpl (const VectorSpaceTpl< Scalar, OtherDim > &other) | |
Build from VectorSpaceTpl of different dimension. | |
![]() | |
ALIGATOR_DYNAMIC_TYPEDEFS (Scalar) | |
Scalar type. | |
virtual | ~ManifoldAbstractTpl ()=default |
VectorXs | neutral () const |
Get the neutral element \(e \in M\) from the manifold (if this makes sense). | |
void | neutral (VectorRef out) 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. | |
void | rand (VectorRef out) const |
Sample a random point \(x \in M\) on the manifold. | |
virtual bool | isNormalized (const ConstVectorRef &) const |
Check if the input vector x is a viable element of the manifold. | |
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 | JintegrateTransport (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const |
Perform the parallel transport 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 | |
int | dim_ |
Static Public Attributes | |
static constexpr int | Dim = _Dim |
Protected Member Functions | |
implementations | |
void | integrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const |
Perform the manifold integration operation. | |
void | Jintegrate_impl (const ConstVectorRef &, const ConstVectorRef &, MatrixRef Jout, int) const |
void | JintegrateTransport_impl (const ConstVectorRef &, const ConstVectorRef &, MatrixRef, int) const |
void | difference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const |
Implementation of the manifold retraction operation. | |
void | Jdifference_impl (const ConstVectorRef &, const ConstVectorRef &, MatrixRef Jout, int arg) const |
void | interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const |
Interpolation operation. | |
![]() | |
virtual void | neutral_impl (VectorRef out) const |
virtual void | rand_impl (VectorRef out) const |
Standard Euclidean vector space.
Definition at line 13 of file vector-space.hpp.
using aligator::VectorSpaceTpl< _Scalar, _Dim >::Scalar = _Scalar |
Definition at line 14 of file vector-space.hpp.
using aligator::VectorSpaceTpl< _Scalar, _Dim >::Base = ManifoldAbstractTpl<Scalar> |
Definition at line 16 of file vector-space.hpp.
|
inline |
Default constructor where the dimension is supplied.
Definition at line 22 of file vector-space.hpp.
|
inline |
Default constructor without arguments.
This constructor is disabled if the dimension is not known at compile time.
Definition at line 36 of file vector-space.hpp.
|
inline |
Build from VectorSpaceTpl of different dimension.
Definition at line 45 of file vector-space.hpp.
aligator::VectorSpaceTpl< _Scalar, _Dim >::ALIGATOR_DYNAMIC_TYPEDEFS | ( | Scalar | ) |
|
inlinevirtual |
Get manifold representation dimension.
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 40 of file vector-space.hpp.
|
inlinevirtual |
Get manifold tangent space dimension.
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 41 of file vector-space.hpp.
|
inlineprotectedvirtual |
Perform the manifold integration operation.
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 56 of file vector-space.hpp.
|
inlineprotectedvirtual |
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 61 of file vector-space.hpp.
|
inlineprotectedvirtual |
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 66 of file vector-space.hpp.
|
inlineprotectedvirtual |
Implementation of the manifold retraction operation.
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 71 of file vector-space.hpp.
|
inlineprotectedvirtual |
Implements aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 76 of file vector-space.hpp.
|
inlineprotectedvirtual |
Interpolation operation.
Reimplemented from aligator::ManifoldAbstractTpl< _Scalar >.
Definition at line 90 of file vector-space.hpp.
|
staticconstexpr |
Definition at line 15 of file vector-space.hpp.
int aligator::VectorSpaceTpl< _Scalar, _Dim >::dim_ |
Definition at line 19 of file vector-space.hpp.