gtsam
Loading...
Searching...
No Matches
gtsam::PowerLieGroup< G, Eigen::Dynamic > Class Template Reference

Detailed Description

template<typename G>
class gtsam::PowerLieGroup< G, Eigen::Dynamic >

Dynamic-count specialization of PowerLieGroup Represents G^N for runtime-sized N while keeping G fixed-size.

Inheritance diagram for gtsam::PowerLieGroup< G, Eigen::Dynamic >:

Public Member Functions

Standard Constructors
 PowerLieGroup ()=default
 Default constructor yields a zero-length placeholder identity.
 PowerLieGroup (size_t count)
 Construct a runtime-sized identity element.
 PowerLieGroup (const Base &elements)
 Construct from vector of group elements.
 PowerLieGroup (const std::initializer_list< G > &elements)
 Construct from initializer list.
Public Member Functions inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
Class between (const Class &g) const
Class between (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
Class compose (const Class &g) const
Class compose (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
Class expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
Class expmap (const TangentVector &v, ChartJacobian H1, ChartJacobian H2={}) const
 expmap with optional derivatives, when the class provides them
Class inverse (ChartJacobian H) const
TangentVector logmap (const Class &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
TangentVector logmap (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
 logmap with optional derivatives, when the class provides them
size_t dim () const
 Return manifold dimension.
PowerLieGroup< G, N > operator* (const PowerLieGroup< G, N > &other) const
 Group multiplication.
PowerLieGroup< G, N > retract (const TangentVector &v, ChartJacobian H1={}, ChartJacobian H2={}) const
 Retract to manifold.
TangentVector localCoordinates (const PowerLieGroup< G, N > &g, ChartJacobian H1={}, ChartJacobian H2={}) const
 Local coordinates on manifold.
Jacobian AdjointMap () const
 Adjoint map.
void print (const std::string &s="") const
 Print for debugging.
bool equals (const PowerLieGroup< G, N > &other, double tol=1e-9) const
 Equality with tolerance.
Public Member Functions inherited from gtsam::LieGroup< PowerLieGroup< G, N >, internal::dimensionProduct(N, traits< G >::dimension)>
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
std::enable_if_t< M !=Eigen::Dynamic, int > dim () const
 Provided fixed dimension in dim() if needed.
const PowerLieGroup< G, N > & derived () const
PowerLieGroup< G, N > inverse (ChartJacobian H) const
PowerLieGroup< G, N > expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
TangentVector logmap (const PowerLieGroup< G, N > &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
PowerLieGroup< G, N > retract (const TangentVector &v) const
 retract as required by manifold concept: applies v at *this
TangentVector localCoordinates (const PowerLieGroup< G, N > &g) const
 localCoordinates as required by manifold concept: finds tangent vector between *this and g
Public Member Functions inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
Class between (const Class &g) const
Class between (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
Class compose (const Class &g) const
Class compose (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
Class expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
Class expmap (const TangentVector &v, ChartJacobian H1, ChartJacobian H2={}) const
 expmap with optional derivatives, when the class provides them
Class inverse (ChartJacobian H) const
TangentVector logmap (const Class &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
TangentVector logmap (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
 logmap with optional derivatives, when the class provides them
size_t dim () const
 Return manifold dimension.
PowerLieGroup< G, Eigen::Dynamic > operator* (const PowerLieGroup< G, Eigen::Dynamic > &other) const
 Group multiplication.
PowerLieGroup< G, Eigen::Dynamic > retract (const TangentVector &v, ChartJacobian H1={}, ChartJacobian H2={}) const
 Retract to manifold.
TangentVector localCoordinates (const PowerLieGroup< G, Eigen::Dynamic > &g, ChartJacobian H1={}, ChartJacobian H2={}) const
 Local coordinates on manifold.
Jacobian AdjointMap () const
 Adjoint map.
void print (const std::string &s="") const
 Print for debugging.
bool equals (const PowerLieGroup< G, Eigen::Dynamic > &other, double tol=1e-9) const
 Equality with tolerance.
Public Member Functions inherited from gtsam::LieGroup< PowerLieGroup< G, Eigen::Dynamic >, internal::dimensionProduct(N, traits< G >::dimension)>
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
std::enable_if_t< M !=Eigen::Dynamic, int > dim () const
 Provided fixed dimension in dim() if needed.
const PowerLieGroup< G, Eigen::Dynamic > & derived () const
PowerLieGroup< G, Eigen::Dynamic > inverse (ChartJacobian H) const
PowerLieGroup< G, Eigen::Dynamic > expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
TangentVector logmap (const PowerLieGroup< G, Eigen::Dynamic > &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
PowerLieGroup< G, Eigen::Dynamic > retract (const TangentVector &v) const
 retract as required by manifold concept: applies v at *this
TangentVector localCoordinates (const PowerLieGroup< G, Eigen::Dynamic > &g) const
 localCoordinates as required by manifold concept: finds tangent vector between *this and g

Static Public Member Functions

static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
Group Operations
static PowerLieGroup Identity ()
 Identity element.
Static Public Member Functions inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static PowerLieGroup< G, N > Expmap (const TangentVector &v, ChartJacobian Hv={})
 Exponential map.
static TangentVector Logmap (const PowerLieGroup< G, N > &p, ChartJacobian Hp={})
 Logarithmic map.
static TangentVector LocalCoordinates (const PowerLieGroup< G, N > &p, ChartJacobian Hp={})
 Local coordinates (same as Logmap).
Static Public Member Functions inherited from gtsam::LieGroup< PowerLieGroup< G, N >, internal::dimensionProduct(N, traits< G >::dimension)>
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static PowerLieGroup< G, N > Retract (const TangentVector &v)
 Retract at origin: possible in Lie group because it has an identity.
static TangentVector LocalCoordinates (const PowerLieGroup< G, N > &g)
 LocalCoordinates at origin: possible in Lie group because it has an identity.
Static Public Member Functions inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static PowerLieGroup< G, Eigen::Dynamic > Expmap (const TangentVector &v, ChartJacobian Hv={})
 Exponential map.
static TangentVector Logmap (const PowerLieGroup< G, Eigen::Dynamic > &p, ChartJacobian Hp={})
 Logarithmic map.
static TangentVector LocalCoordinates (const PowerLieGroup< G, Eigen::Dynamic > &p, ChartJacobian Hp={})
 Local coordinates (same as Logmap).
Static Public Member Functions inherited from gtsam::LieGroup< PowerLieGroup< G, Eigen::Dynamic >, internal::dimensionProduct(N, traits< G >::dimension)>
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static PowerLieGroup< G, Eigen::Dynamic > Retract (const TangentVector &v)
 Retract at origin: possible in Lie group because it has an identity.
static TangentVector LocalCoordinates (const PowerLieGroup< G, Eigen::Dynamic > &g)
 LocalCoordinates at origin: possible in Lie group because it has an identity.

Static Public Attributes

static constexpr auto dimension
Static Public Attributes inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
static constexpr auto dimension
Static Public Attributes inherited from gtsam::LieGroup< PowerLieGroup< G, N >, internal::dimensionProduct(N, traits< G >::dimension)>
static constexpr auto dimension
Static Public Attributes inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
static constexpr auto dimension
Static Public Attributes inherited from gtsam::LieGroup< PowerLieGroup< G, Eigen::Dynamic >, internal::dimensionProduct(N, traits< G >::dimension)>
static constexpr auto dimension

Public Types

typedef std::vector< G > Base
 Base vector type.
typedef PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup > Helper
Public Types inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
using LieBase
typedef multiplicative_group_tag group_flavor
using TangentVector
using ChartJacobian
using Jacobian
using BaseJacobian
using JacobianStorage
Public Types inherited from gtsam::LieGroup< PowerLieGroup< G, N >, internal::dimensionProduct(N, traits< G >::dimension)>
typedef OptionalJacobian< N, N > ChartJacobian
typedef Eigen::Matrix< double, N, N > Jacobian
typedef Eigen::Matrix< double, N, 1 > TangentVector
Public Types inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
using LieBase
typedef multiplicative_group_tag group_flavor
using TangentVector
using ChartJacobian
using Jacobian
using BaseJacobian
using JacobianStorage
Public Types inherited from gtsam::LieGroup< PowerLieGroup< G, Eigen::Dynamic >, internal::dimensionProduct(N, traits< G >::dimension)>
typedef OptionalJacobian< N, N > ChartJacobian
typedef Eigen::Matrix< double, N, N > Jacobian
typedef Eigen::Matrix< double, N, 1 > TangentVector

Additional Inherited Members

Protected Member Functions inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
const PowerLieGroup< G, N > & derived () const
 Downcast to the derived storage type.
size_t componentCount () const
 Runtime component count.
void checkMatchingCounts (const PowerLieGroup< G, N > &other, const char *operation) const
 Validate matching component counts for binary operations.
Protected Member Functions inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
const PowerLieGroup< G, Eigen::Dynamic > & derived () const
 Downcast to the derived storage type.
size_t componentCount () const
 Runtime component count.
void checkMatchingCounts (const PowerLieGroup< G, Eigen::Dynamic > &other, const char *operation) const
 Validate matching component counts for binary operations.
Static Protected Member Functions inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
static size_t totalDimension (size_t count)
 Total tangent dimension for a given component count.
static Eigen::Index offset (size_t i)
 Starting offset of one component inside the concatenated tangent.
static void checkDynamicTangentSize (const TangentVector &v, size_t count, const char *operation)
 Validate tangent size for dynamic-count groups.
static traits< G >::TangentVector tangentSegment (const TangentVector &v, size_t i)
 Extract one component tangent from the concatenated tangent.
static PowerLieGroup< G, N > makeResult (size_t count)
 Create a result object with the requested component count.
static JacobianStorage makeJacobianStorage (size_t count)
 Create per-component Jacobian storage.
static void assignTangentSegment (TangentVector &v, size_t i, const typename traits< G >::TangentVector &vi)
 Write one component tangent into the concatenated tangent.
static void assignJacobianBlock (MatrixType &H, size_t i, const BaseJacobian &block)
 Write one component block into a block-diagonal Jacobian.
static void fillJacobianBlocks (ChartJacobian H, const JacobianStorage &jacobians, size_t count)
 Assemble a block-diagonal Jacobian from per-component blocks.
static TangentVector zeroTangent (size_t count)
 Create a zero tangent with the requested runtime size.
static Jacobian zeroJacobian (size_t count)
 Create a zero Jacobian with the requested runtime size.
Static Protected Member Functions inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
static size_t totalDimension (size_t count)
 Total tangent dimension for a given component count.
static Eigen::Index offset (size_t i)
 Starting offset of one component inside the concatenated tangent.
static void checkDynamicTangentSize (const TangentVector &v, size_t count, const char *operation)
 Validate tangent size for dynamic-count groups.
static traits< G >::TangentVector tangentSegment (const TangentVector &v, size_t i)
 Extract one component tangent from the concatenated tangent.
static PowerLieGroup< G, Eigen::Dynamic > makeResult (size_t count)
 Create a result object with the requested component count.
static JacobianStorage makeJacobianStorage (size_t count)
 Create per-component Jacobian storage.
static void assignTangentSegment (TangentVector &v, size_t i, const typename traits< G >::TangentVector &vi)
 Write one component tangent into the concatenated tangent.
static void assignJacobianBlock (MatrixType &H, size_t i, const BaseJacobian &block)
 Write one component block into a block-diagonal Jacobian.
static void fillJacobianBlocks (ChartJacobian H, const JacobianStorage &jacobians, size_t count)
 Assemble a block-diagonal Jacobian from per-component blocks.
static TangentVector zeroTangent (size_t count)
 Create a zero tangent with the requested runtime size.
static Jacobian zeroJacobian (size_t count)
 Create a zero Jacobian with the requested runtime size.
Static Protected Attributes inherited from gtsam::PowerLieGroupBase< G, N, PowerLieGroup< G, N > >
static constexpr bool isDynamic
static constexpr int n
Static Protected Attributes inherited from gtsam::PowerLieGroupBase< G, Eigen::Dynamic, PowerLieGroup< G, Eigen::Dynamic > >
static constexpr bool isDynamic
static constexpr int n

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