aligator  0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
 
Loading...
Searching...
No Matches
aligator::VectorSpaceTpl< _Scalar, _Dim > Struct Template Reference

Standard Euclidean vector space. More...

#include <aligator/core/vector-space.hpp>

Inheritance diagram for aligator::VectorSpaceTpl< _Scalar, _Dim >:
[legend]
Collaboration diagram for aligator::VectorSpaceTpl< _Scalar, _Dim >:
[legend]

Public Types

using Scalar = _Scalar
 
using Base = ManifoldAbstractTpl<Scalar>
 
- Public Types inherited from aligator::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.
 
- Public Member Functions inherited from aligator::ManifoldAbstractTpl< _Scalar >
 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.
 
- Protected Member Functions inherited from aligator::ManifoldAbstractTpl< _Scalar >
virtual void neutral_impl (VectorRef out) const
 
virtual void rand_impl (VectorRef out) const
 

Detailed Description

template<typename _Scalar, int _Dim>
struct aligator::VectorSpaceTpl< _Scalar, _Dim >

Standard Euclidean vector space.

Definition at line 13 of file vector-space.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar, int _Dim>
using aligator::VectorSpaceTpl< _Scalar, _Dim >::Scalar = _Scalar

Definition at line 14 of file vector-space.hpp.

◆ Base

template<typename _Scalar, int _Dim>
using aligator::VectorSpaceTpl< _Scalar, _Dim >::Base = ManifoldAbstractTpl<Scalar>

Definition at line 16 of file vector-space.hpp.

Constructor & Destructor Documentation

◆ VectorSpaceTpl() [1/3]

template<typename _Scalar, int _Dim>
aligator::VectorSpaceTpl< _Scalar, _Dim >::VectorSpaceTpl ( const int dim)
inline

Default constructor where the dimension is supplied.

Definition at line 22 of file vector-space.hpp.

◆ VectorSpaceTpl() [2/3]

template<typename _Scalar, int _Dim>
template<int N = Dim, typename = typename std::enable_if_t<N != Eigen::Dynamic>>
aligator::VectorSpaceTpl< _Scalar, _Dim >::VectorSpaceTpl ( )
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.

◆ VectorSpaceTpl() [3/3]

template<typename _Scalar, int _Dim>
template<int OtherDim>
aligator::VectorSpaceTpl< _Scalar, _Dim >::VectorSpaceTpl ( const VectorSpaceTpl< Scalar, OtherDim > & other)
inline

Build from VectorSpaceTpl of different dimension.

Definition at line 45 of file vector-space.hpp.

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename _Scalar, int _Dim>
aligator::VectorSpaceTpl< _Scalar, _Dim >::ALIGATOR_DYNAMIC_TYPEDEFS ( Scalar )

◆ nx()

template<typename _Scalar, int _Dim>
int aligator::VectorSpaceTpl< _Scalar, _Dim >::nx ( ) const
inlinevirtual

Get manifold representation dimension.

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 40 of file vector-space.hpp.

◆ ndx()

template<typename _Scalar, int _Dim>
int aligator::VectorSpaceTpl< _Scalar, _Dim >::ndx ( ) const
inlinevirtual

Get manifold tangent space dimension.

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 41 of file vector-space.hpp.

◆ integrate_impl()

template<typename _Scalar, int _Dim>
void aligator::VectorSpaceTpl< _Scalar, _Dim >::integrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
VectorRef out ) const
inlineprotectedvirtual

Perform the manifold integration operation.

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 56 of file vector-space.hpp.

◆ Jintegrate_impl()

template<typename _Scalar, int _Dim>
void aligator::VectorSpaceTpl< _Scalar, _Dim >::Jintegrate_impl ( const ConstVectorRef & ,
const ConstVectorRef & ,
MatrixRef Jout,
int  ) const
inlineprotectedvirtual

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 61 of file vector-space.hpp.

◆ JintegrateTransport_impl()

template<typename _Scalar, int _Dim>
void aligator::VectorSpaceTpl< _Scalar, _Dim >::JintegrateTransport_impl ( const ConstVectorRef & ,
const ConstVectorRef & ,
MatrixRef ,
int  ) const
inlineprotectedvirtual

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 66 of file vector-space.hpp.

◆ difference_impl()

template<typename _Scalar, int _Dim>
void aligator::VectorSpaceTpl< _Scalar, _Dim >::difference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
VectorRef out ) const
inlineprotectedvirtual

Implementation of the manifold retraction operation.

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 71 of file vector-space.hpp.

◆ Jdifference_impl()

template<typename _Scalar, int _Dim>
void aligator::VectorSpaceTpl< _Scalar, _Dim >::Jdifference_impl ( const ConstVectorRef & ,
const ConstVectorRef & ,
MatrixRef Jout,
int arg ) const
inlineprotectedvirtual

Implements aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 76 of file vector-space.hpp.

◆ interpolate_impl()

template<typename _Scalar, int _Dim>
void aligator::VectorSpaceTpl< _Scalar, _Dim >::interpolate_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
const Scalar & u,
VectorRef out ) const
inlineprotectedvirtual

Interpolation operation.

Reimplemented from aligator::ManifoldAbstractTpl< _Scalar >.

Definition at line 90 of file vector-space.hpp.

Member Data Documentation

◆ Dim

template<typename _Scalar, int _Dim>
int aligator::VectorSpaceTpl< _Scalar, _Dim >::Dim = _Dim
staticconstexpr

Definition at line 15 of file vector-space.hpp.

◆ dim_

template<typename _Scalar, int _Dim>
int aligator::VectorSpaceTpl< _Scalar, _Dim >::dim_

Definition at line 19 of file vector-space.hpp.


The documentation for this struct was generated from the following file: