gtsam
Loading...
Searching...
No Matches
gtsam::group_action::Diffeomorphism< Action > Struct Template Reference

Detailed Description

template<typename Action>
struct gtsam::group_action::Diffeomorphism< Action >

Diffeomorphism: The map m -> m, defined by fixing g0.

(Also known as the translation map L_g or R_g). For Left Action: m -> g0 * m For Right Action: m -> m * g0

Inherits from Action to allow for Empty Base Optimization (EBO). If Action is stateless, this struct will have the same size as G.

Inheritance diagram for gtsam::group_action::Diffeomorphism< Action >:

Public Member Functions

 Diffeomorphism (const G &g)
 Diffeomorphism (const G &g, const Action &a)
 Constructor with explicit action instance.
M operator() (const M &m) const
 Apply the diffeomorphism to a manifold point.
template<typename A = Action, typename = std::enable_if_t< std::is_invocable_r_v<M, const A&, const G&, const M&, OptionalJacobian<DimM, DimG>, OptionalJacobian<DimM, DimM>> || std::is_invocable_r_v<M, const A&, const M&, const G&, OptionalJacobian<DimM, DimM>, OptionalJacobian<DimM, DimG>>>>
M operator() (const M &m, OptionalJacobian< DimM, DimM > H) const
template<typename A = Action, typename = std::enable_if_t< std::is_invocable_r_v<M, const A&, const G&, const M&, OptionalJacobian<DimM, DimG>, OptionalJacobian<DimM, DimM>> || std::is_invocable_r_v<M, const A&, const M&, const G&, OptionalJacobian<DimM, DimM>, OptionalJacobian<DimM, DimG>>>>
traits< M >::TangentVector pushforward (const M &m, const typename traits< M >::TangentVector &v, OptionalJacobian< DimM, DimM > H={}) const
 Push-forward a tangent vector through the diffeomorphism.

Public Attributes

G g0

Static Public Attributes

static constexpr int DimG = traits<G>::dimension
static constexpr int DimM = traits<M>::dimension

Public Types

using G = typename Action::Group
using M = typename Action::Manifold

Member Function Documentation

◆ pushforward()

template<typename Action>
template<typename A = Action, typename = std::enable_if_t< std::is_invocable_r_v<M, const A&, const G&, const M&, OptionalJacobian<DimM, DimG>, OptionalJacobian<DimM, DimM>> || std::is_invocable_r_v<M, const A&, const M&, const G&, OptionalJacobian<DimM, DimM>, OptionalJacobian<DimM, DimG>>>>
traits< M >::TangentVector gtsam::group_action::Diffeomorphism< Action >::pushforward ( const M & m,
const typename traits< M >::TangentVector & v,
OptionalJacobian< DimM, DimM > H = {} ) const
inline

Push-forward a tangent vector through the diffeomorphism.

Given a tangent vector v at m, this returns the translated vector in the tangent space at φ_g0(m) using the Jacobian of the action. This is the standard way to transport vectors between tangent spaces induced by the group action.


The documentation for this struct was generated from the following file:
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/base/GroupAction.h