gtsam 4.2
gtsam
Loading...
Searching...
No Matches
Lie.h File Reference

Base class and basic functions for Lie types. More...

Go to the source code of this file.

Classes

struct  gtsam::LieGroup< Class, N >
 A CRTP helper class that implements Lie group methods Prerequisites: methods operator*, inverse, and AdjointMap, as well as a ChartAtOrigin struct that will be used to define the manifold Chart To use, simply derive, but also say "using LieGroup<Class,N>::inverse" For derivative math, see doc/math.pdf. More...
struct  gtsam::lie_group_tag
 tag to assert a type is a Lie group More...
struct  gtsam::internal::LieGroupTraits< Class >
 A helper class that implements the traits interface for GTSAM lie groups. More...
struct  gtsam::internal::LieGroup< Class >
 Both LieGroupTraits and Testable. More...
class  gtsam::IsLieGroup< T >
 Lie Group Concept. More...
class  gtsam::TransformCovariance< T >
 Functor for transforming covariance of T. More...

Namespaces

namespace  gtsam
 Global functions in a separate testing namespace.

Macros

#define GTSAM_CONCEPT_LIE_INST(T)
 Macros for using the LieConcept.
#define GTSAM_CONCEPT_LIE_TYPE(T)

Functions

template<class Class>
Class gtsam::between_default (const Class &l1, const Class &l2)
 These core global functions can be specialized by new Lie types for better performance.
template<class Class>
Vector gtsam::logmap_default (const Class &l0, const Class &lp)
 Log map centered at l0, s.t.
template<class Class>
Class gtsam::expmap_default (const Class &t, const Vector &d)
 Exponential map centered at l0, s.t.
template<class T>
gtsam::BCH (const T &X, const T &Y)
 Three term approximation of the Baker-Campbell-Hausdorff formula In non-commutative Lie groups, when composing exp(Z) = exp(X)exp(Y) it is not true that Z = X+Y.
template<class T>
Matrix gtsam::wedge (const Vector &x)
 Declaration of wedge (see Murray94book) used to convert from n exponential coordinates to n*n element of the Lie algebra.
template<class T>
gtsam::expm (const Vector &x, int K=7)
 Exponential map given exponential coordinates class T needs a wedge<> function and a constructor from Matrix.
template<typename T>
gtsam::interpolate (const T &X, const T &Y, double t, typename MakeOptionalJacobian< T, T >::type Hx=boost::none, typename MakeOptionalJacobian< T, T >::type Hy=boost::none)
 Linear interpolation between X and Y by coefficient t.

Detailed Description

Base class and basic functions for Lie types.

Author
Richard Roberts
Alex Cunningham
Frank Dellaert
Mike Bosse
Duy Nguyen Ta
Yotam Stern

Macro Definition Documentation

◆ GTSAM_CONCEPT_LIE_INST

#define GTSAM_CONCEPT_LIE_INST ( T)
Value:
template class gtsam::IsLieGroup<T>;
Lie Group Concept.
Definition Lie.h:260

Macros for using the LieConcept.

  • An instantiation for use inside unit tests
  • A typedef for use inside generic algorithms

NOTE: intentionally not in the gtsam namespace to allow for classes not in the gtsam namespace to be more easily enforced as testable

◆ GTSAM_CONCEPT_LIE_TYPE

#define GTSAM_CONCEPT_LIE_TYPE ( T)
Value:
using _gtsam_IsLieGroup_##T = gtsam::IsLieGroup<T>;