Public Member Functions | Protected Types | Private Types | Private Member Functions | List of all members
gtsam::ProductLieGroup< G, H > Class Template Reference

#include <ProductLieGroup.h>

Inheritance diagram for gtsam::ProductLieGroup< G, H >:
Inheritance graph
[legend]

Public Member Functions

 ProductLieGroup ()
 Default constructor yields identity. More...
 
 ProductLieGroup (const G &g, const H &h)
 
 ProductLieGroup (const Base &base)
 

Protected Types

enum  { dimension1 = traits<G>::dimension }
 
enum  { dimension2 = traits<H>::dimension }
 

Private Types

typedef std::pair< G, HBase
 

Private Member Functions

 GTSAM_CONCEPT_ASSERT (IsLieGroup< G >)
 
 GTSAM_CONCEPT_ASSERT (IsLieGroup< H >)
 

Group

typedef multiplicative_group_tag group_flavor
 
ProductLieGroup operator* (const ProductLieGroup &other) const
 
ProductLieGroup inverse () const
 
ProductLieGroup compose (const ProductLieGroup &g) const
 
ProductLieGroup between (const ProductLieGroup &g) const
 
static ProductLieGroup Identity ()
 

Manifold

enum  { dimension = dimension1 + dimension2 }
 
typedef Eigen::Matrix< double, dimension, 1 > TangentVector
 
typedef OptionalJacobian< dimension, dimensionChartJacobian
 
size_t dim () const
 
ProductLieGroup retract (const TangentVector &v, ChartJacobian H1={}, ChartJacobian H2={}) const
 
TangentVector localCoordinates (const ProductLieGroup &g, ChartJacobian H1={}, ChartJacobian H2={}) const
 
static size_t Dim ()
 

Lie Group

typedef Eigen::Matrix< double, dimension, dimensionJacobian
 
typedef Eigen::Matrix< double, dimension1, dimension1Jacobian1
 
typedef Eigen::Matrix< double, dimension2, dimension2Jacobian2
 
ProductLieGroup compose (const ProductLieGroup &other, ChartJacobian H1, ChartJacobian H2={}) const
 
ProductLieGroup between (const ProductLieGroup &other, ChartJacobian H1, ChartJacobian H2={}) const
 
ProductLieGroup inverse (ChartJacobian D) const
 
ProductLieGroup expmap (const TangentVector &v) const
 
TangentVector logmap (const ProductLieGroup &g) const
 
static ProductLieGroup Expmap (const TangentVector &v, ChartJacobian Hv={})
 
static TangentVector Logmap (const ProductLieGroup &p, ChartJacobian Hp={})
 
static TangentVector LocalCoordinates (const ProductLieGroup &p, ChartJacobian Hp={})
 

Detailed Description

template<typename G, typename H>
class gtsam::ProductLieGroup< G, H >

Template to construct the product Lie group of two other Lie groups Assumes Lie group structure for G and H

Definition at line 29 of file ProductLieGroup.h.

Member Typedef Documentation

◆ Base

template<typename G, typename H>
typedef std::pair<G, H> gtsam::ProductLieGroup< G, H >::Base
private

Definition at line 32 of file ProductLieGroup.h.

◆ ChartJacobian

template<typename G, typename H>
typedef OptionalJacobian<dimension, dimension> gtsam::ProductLieGroup< G, H >::ChartJacobian

Definition at line 75 of file ProductLieGroup.h.

◆ group_flavor

template<typename G, typename H>
typedef multiplicative_group_tag gtsam::ProductLieGroup< G, H >::group_flavor

Definition at line 50 of file ProductLieGroup.h.

◆ Jacobian

template<typename G, typename H>
typedef Eigen::Matrix<double, dimension, dimension> gtsam::ProductLieGroup< G, H >::Jacobian
protected

Definition at line 98 of file ProductLieGroup.h.

◆ Jacobian1

template<typename G, typename H>
typedef Eigen::Matrix<double, dimension1, dimension1> gtsam::ProductLieGroup< G, H >::Jacobian1
protected

Definition at line 99 of file ProductLieGroup.h.

◆ Jacobian2

template<typename G, typename H>
typedef Eigen::Matrix<double, dimension2, dimension2> gtsam::ProductLieGroup< G, H >::Jacobian2
protected

Definition at line 100 of file ProductLieGroup.h.

◆ TangentVector

template<typename G, typename H>
typedef Eigen::Matrix<double, dimension, 1> gtsam::ProductLieGroup< G, H >::TangentVector

Definition at line 74 of file ProductLieGroup.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename G, typename H>
anonymous enum
protected
Enumerator
dimension1 

Definition at line 35 of file ProductLieGroup.h.

◆ anonymous enum

template<typename G, typename H>
anonymous enum
protected
Enumerator
dimension2 

Definition at line 36 of file ProductLieGroup.h.

◆ anonymous enum

template<typename G, typename H>
anonymous enum
Enumerator
dimension 

Definition at line 70 of file ProductLieGroup.h.

Constructor & Destructor Documentation

◆ ProductLieGroup() [1/3]

template<typename G, typename H>
gtsam::ProductLieGroup< G, H >::ProductLieGroup ( )
inline

Default constructor yields identity.

Definition at line 40 of file ProductLieGroup.h.

◆ ProductLieGroup() [2/3]

template<typename G, typename H>
gtsam::ProductLieGroup< G, H >::ProductLieGroup ( const G g,
const H h 
)
inline

Definition at line 43 of file ProductLieGroup.h.

◆ ProductLieGroup() [3/3]

template<typename G, typename H>
gtsam::ProductLieGroup< G, H >::ProductLieGroup ( const Base base)
inline

Definition at line 46 of file ProductLieGroup.h.

Member Function Documentation

◆ between() [1/2]

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::between ( const ProductLieGroup< G, H > &  g) const
inline

Definition at line 63 of file ProductLieGroup.h.

◆ between() [2/2]

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::between ( const ProductLieGroup< G, H > &  other,
ChartJacobian  H1,
ChartJacobian  H2 = {} 
) const
inline

Definition at line 116 of file ProductLieGroup.h.

◆ compose() [1/2]

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::compose ( const ProductLieGroup< G, H > &  g) const
inline

Definition at line 60 of file ProductLieGroup.h.

◆ compose() [2/2]

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::compose ( const ProductLieGroup< G, H > &  other,
ChartJacobian  H1,
ChartJacobian  H2 = {} 
) const
inline

Definition at line 103 of file ProductLieGroup.h.

◆ Dim()

template<typename G, typename H>
static size_t gtsam::ProductLieGroup< G, H >::Dim ( )
inlinestatic

Definition at line 71 of file ProductLieGroup.h.

◆ dim()

template<typename G, typename H>
size_t gtsam::ProductLieGroup< G, H >::dim ( ) const
inline

Definition at line 72 of file ProductLieGroup.h.

◆ Expmap()

template<typename G, typename H>
static ProductLieGroup gtsam::ProductLieGroup< G, H >::Expmap ( const TangentVector v,
ChartJacobian  Hv = {} 
)
inlinestatic

Definition at line 140 of file ProductLieGroup.h.

◆ expmap()

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::expmap ( const TangentVector v) const
inline

Definition at line 167 of file ProductLieGroup.h.

◆ GTSAM_CONCEPT_ASSERT() [1/2]

template<typename G, typename H>
gtsam::ProductLieGroup< G, H >::GTSAM_CONCEPT_ASSERT ( IsLieGroup< G )
private

◆ GTSAM_CONCEPT_ASSERT() [2/2]

template<typename G, typename H>
gtsam::ProductLieGroup< G, H >::GTSAM_CONCEPT_ASSERT ( IsLieGroup< H )
private

◆ Identity()

template<typename G, typename H>
static ProductLieGroup gtsam::ProductLieGroup< G, H >::Identity ( )
inlinestatic

Definition at line 51 of file ProductLieGroup.h.

◆ inverse() [1/2]

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::inverse ( ) const
inline

Definition at line 57 of file ProductLieGroup.h.

◆ inverse() [2/2]

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::inverse ( ChartJacobian  D) const
inline

Definition at line 129 of file ProductLieGroup.h.

◆ localCoordinates()

template<typename G, typename H>
TangentVector gtsam::ProductLieGroup< G, H >::localCoordinates ( const ProductLieGroup< G, H > &  g,
ChartJacobian  H1 = {},
ChartJacobian  H2 = {} 
) const
inline

Definition at line 84 of file ProductLieGroup.h.

◆ LocalCoordinates()

template<typename G, typename H>
static TangentVector gtsam::ProductLieGroup< G, H >::LocalCoordinates ( const ProductLieGroup< G, H > &  p,
ChartJacobian  Hp = {} 
)
inlinestatic

Definition at line 164 of file ProductLieGroup.h.

◆ Logmap()

template<typename G, typename H>
static TangentVector gtsam::ProductLieGroup< G, H >::Logmap ( const ProductLieGroup< G, H > &  p,
ChartJacobian  Hp = {} 
)
inlinestatic

Definition at line 151 of file ProductLieGroup.h.

◆ logmap()

template<typename G, typename H>
TangentVector gtsam::ProductLieGroup< G, H >::logmap ( const ProductLieGroup< G, H > &  g) const
inline

Definition at line 170 of file ProductLieGroup.h.

◆ operator*()

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::operator* ( const ProductLieGroup< G, H > &  other) const
inline

Definition at line 53 of file ProductLieGroup.h.

◆ retract()

template<typename G, typename H>
ProductLieGroup gtsam::ProductLieGroup< G, H >::retract ( const TangentVector v,
ChartJacobian  H1 = {},
ChartJacobian  H2 = {} 
) const
inline

Definition at line 77 of file ProductLieGroup.h.


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


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:47:07