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::internal::ChartAtIdentity< Class, N >
 Chart-at-origin adapter for LieGroup-derived classes with explicit instance retract/localCoordinates implementations. More...
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)

Typedefs

template<class C, class TangentVector, class ChartJacobian>
using gtsam::internal::ExpmapWithJacobian
 Probe for a class static Expmap implementation with a Jacobian.
template<class C, class ChartJacobian>
using gtsam::internal::LogmapWithJacobian
 Probe for a class static Logmap implementation with a Jacobian.

Functions

constexpr int gtsam::internal::dimensionSum (int n, int m)
 Sum compile-time dimensions, propagating Eigen::Dynamic.
constexpr int gtsam::internal::dimensionProduct (int n, int m)
 Multiply compile-time dimensions, propagating Eigen::Dynamic.
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<typename T>
T gtsam::interpolate (const T &X, const T &Y, double t, typename MakeOptionalJacobian< T, T >::type Hx={}, typename MakeOptionalJacobian< T, T >::type Hy={}, typename MakeOptionalJacobian< T, double >::type Ht={})
 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:377

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>;

Typedef Documentation

◆ ExpmapWithJacobian

template<class C, class TangentVector, class ChartJacobian>
using gtsam::internal::ExpmapWithJacobian
Initial value:
decltype(C::Expmap(
std::declval<const TangentVector&>(), std::declval<ChartJacobian>()))

Probe for a class static Expmap implementation with a Jacobian.

◆ LogmapWithJacobian

template<class C, class ChartJacobian>
using gtsam::internal::LogmapWithJacobian
Initial value:
decltype(
C::Logmap(std::declval<const C&>(), std::declval<ChartJacobian>()))

Probe for a class static Logmap implementation with a Jacobian.