smooth
A C++ library for Lie theory
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SubManifold< M > Class Template Reference

A Submanifold is a subspace of a manifold defined by an origin m0 and a tangent subspace. More...

#include <submanifold.hpp>

Public Member Functions

 SubManifold ()
 Construct with full tangent space.
 
 SubManifold (const M &m0, const M &m, Eigen::Ref< const Eigen::VectorXi > fixed_dims=Eigen::VectorXi::Zero(0))
 Create a sub-manifold of M defined as [ x \in M : x = x0 \oplus \sum_k \alpha_k e_{i_k}, \alpha_k \in R ] where k are the "active" dimensions.
 
 SubManifold (const M &m0, Eigen::Ref< const Eigen::VectorXi > fixed_dims)
 As above, but with m = m0.
 
const M & m () const
 Access value in embedded space.
 
const M & m0 () const
 Access origin in embedded space.
 
const Eigen::VectorXi & fixed_dims () const
 Access active dimensions.
 
Eigen::Index dof () const
 Degrees of freedom.
 
template<typename Derived >
SubManifold< M > rplus (const Eigen::MatrixBase< Derived > &a) const
 Right-plus.
 
Eigen::Vector< typename traits::man< M >::Scalar, -1 > rminus (const SubManifold< M > &other) const
 Right-minus.
 

Detailed Description

template<Manifold M>
class SubManifold< M >

A Submanifold is a subspace of a manifold defined by an origin m0 and a tangent subspace.

Definition at line 15 of file submanifold.hpp.

Constructor & Destructor Documentation

◆ SubManifold() [1/3]

template<Manifold M>
SubManifold< M >::SubManifold ( )
inline

Construct with full tangent space.

Definition at line 21 of file submanifold.hpp.

◆ SubManifold() [2/3]

template<Manifold M>
SubManifold< M >::SubManifold ( const M &  m0,
const M &  m,
Eigen::Ref< const Eigen::VectorXi >  fixed_dims = Eigen::VectorXi::Zero(0) 
)
inline

Create a sub-manifold of M defined as [ x \in M : x = x0 \oplus \sum_k \alpha_k e_{i_k}, \alpha_k \in R ] where k are the "active" dimensions.

Parameters
m0reference point
mcurrent value
fixed_dimsactive dimensions
Note
Binary operations on SubManifold's require that both instance have identical reference points and active dimensions.

Definition at line 37 of file submanifold.hpp.

◆ SubManifold() [3/3]

template<Manifold M>
SubManifold< M >::SubManifold ( const M &  m0,
Eigen::Ref< const Eigen::VectorXi >  fixed_dims 
)
inline

As above, but with m = m0.

Definition at line 49 of file submanifold.hpp.

Member Function Documentation

◆ dof()

template<Manifold M>
Eigen::Index SubManifold< M >::dof ( ) const
inline

Degrees of freedom.

Definition at line 61 of file submanifold.hpp.

◆ fixed_dims()

template<Manifold M>
const Eigen::VectorXi & SubManifold< M >::fixed_dims ( ) const
inline

Access active dimensions.

Definition at line 58 of file submanifold.hpp.

◆ m()

template<Manifold M>
const M & SubManifold< M >::m ( ) const
inline

Access value in embedded space.

Definition at line 52 of file submanifold.hpp.

◆ m0()

template<Manifold M>
const M & SubManifold< M >::m0 ( ) const
inline

Access origin in embedded space.

Definition at line 55 of file submanifold.hpp.

◆ rminus()

template<Manifold M>
Eigen::Vector< typename traits::man< M >::Scalar, -1 > SubManifold< M >::rminus ( const SubManifold< M > &  other) const
inline

Right-minus.

Definition at line 83 of file submanifold.hpp.

◆ rplus()

template<Manifold M>
template<typename Derived >
SubManifold< M > SubManifold< M >::rplus ( const Eigen::MatrixBase< Derived > &  a) const
inline

Right-plus.

Definition at line 65 of file submanifold.hpp.


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