smooth
A C++ library for Lie theory
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Bundle< _Gs > Class Template Reference

Storage implementation of Bundle lie group. More...

#include <bundle.hpp>

Inheritance diagram for Bundle< _Gs >:
Inheritance graph
[legend]

Public Member Functions

template<typename... S>
requires (std::is_assignable_v<_Gs, S> && ...)
 Bundle (S &&... gs)
 Construct Bundle from parts.
 
- Public Member Functions inherited from BundleBase< Bundle< _Gs... > >
MapDispatch< PartType< Idx > > part ()
 Access part no Idx of Bundle.
 
MapDispatch< const PartType< Idx > > part () const
 Const access part no Idx of Bundle.
 
- Public Member Functions inherited from LieGroupBase< Derived >
template<bool = true>
requires (is_mutable)
autocoeffs () const
 Access underlying storages.
 
const autocoeffs () const
 Const access underlying storages.
 
template<bool = true>
requires (is_mutable)
autodata () const
 Access raw pointer.
 
const autodata () const
 Const access raw pointer.
 
template<typename OtherDerived >
requires (is_mutable && std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
Derivedoperator= (const LieGroupBase< OtherDerived > &o) noexcept
 
Eigen::Index dof () const noexcept
 Dynamic size (degrees of freedom).
 
void setIdentity () noexcept
 Set to group identity element.
 
void setRandom () noexcept
 Set to a random element.
 
Matrix matrix () const noexcept
 Return as matrix Lie group element in \( \mathbb{R}^{\mathtt{dim} \times \mathtt{dim}} \).
 
template<typename OtherDerived >
requires (std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
bool isApprox (const LieGroupBase< OtherDerived > &o, const Scalar &eps=Eigen::NumTraits< Scalar >::dummy_precision()) const noexcept
 Check if (approximately) equal to other element o.
 
template<typename NewScalar >
CastT< NewScalarcast () const noexcept
 Cast to different scalar type.
 
template<typename OtherDerived >
requires (std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
PlainObject operator* (const LieGroupBase< OtherDerived > &o) const noexcept
 Group binary composition operation.
 
template<typename OtherDerived >
requires (is_mutable && std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
Derivedoperator*= (const LieGroupBase< OtherDerived > &o) noexcept
 Inplace group binary composition operation.
 
PlainObject inverse () const noexcept
 Group inverse operation.
 
Tangent log () const noexcept
 Lie group logarithm.
 
TangentMap Ad () const noexcept
 Lie group adjoint.
 
template<typename TangentDerived >
PlainObject operator+ (const Eigen::MatrixBase< TangentDerived > &a) const noexcept
 Right-plus.
 
template<typename TangentDerived >
requires (is_mutable)
Derivedoperator+= (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Inplace right-plus: \( \mathbf{x} \leftarrow \mathbf{x} \circ \exp(\mathbf{a}) \).
 
template<typename OtherDerived >
requires (std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
Tangent operator- (const LieGroupBase< OtherDerived > &xo) const noexcept
 Right-minus.
 

Additional Inherited Members

- Public Types inherited from BundleBase< Bundle< _Gs... > >
using PartType = typename liebase_info< Bundle< _Gs... > >::template PartPlainObject< Idx >
 Part type.
 
- Public Types inherited from LieGroupBase< Derived >
using Scalar = typename traits::Scalar
 Scalar type.
 
using Matrix = Eigen::Matrix< Scalar, Dim, Dim >
 Lie group matrix type.
 
using Tangent = Eigen::Matrix< Scalar, Dof, 1 >
 Lie group parameterized tangent type.
 
using TangentMap = Eigen::Matrix< Scalar, Dof, Dof >
 Matrix representing map between tangent elements.
 
using Hessian = Eigen::Matrix< Scalar, Dof, Dof *Dof >
 Plain return type with different scalar.
 
template<typename NewScalar >
using CastT = typename traits::template PlainObject< NewScalar >
 Plain return type with different scalar.
 
using PlainObject = CastT< Scalar >
 Plain return type.
 
- Static Public Member Functions inherited from LieGroupBase< Derived >
static PlainObject Identity () noexcept
 Construct the identity element.
 
static PlainObject Random () noexcept
 Construct a random element.
 
template<typename TangentDerived >
static PlainObject exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Lie group exponential map.
 
template<typename TangentDerived >
static Matrix hat (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Lie algebra hat map.
 
template<typename MatrixDerived >
static Tangent vee (const Eigen::MatrixBase< MatrixDerived > &A) noexcept
 Lie alebra vee map.
 
template<typename TangentDerived >
static TangentMap ad (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Lie algebra adjoint.
 
template<typename TangentDerived1 , typename TangentDerived2 >
static Tangent lie_bracket (const Eigen::MatrixBase< TangentDerived1 > &a, const Eigen::MatrixBase< TangentDerived2 > &b) noexcept
 Lie algebra bracket.
 
template<typename TangentDerived >
static TangentMap dr_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Right jacobian of the exponential map.
 
template<typename TangentDerived >
static TangentMap dr_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Inverse of right jacobian of the exponential map.
 
template<typename TangentDerived >
static TangentMap dl_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Left jacobian of the exponential map.
 
template<typename TangentDerived >
static TangentMap dl_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Inverse of left jacobian of the exponential map.
 
template<typename TangentDerived >
static Hessian d2r_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Right Hessian of the exponential map.
 
template<typename TangentDerived >
static Hessian d2r_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Right Hessian of the log map.
 
template<typename TangentDerived >
static Hessian d2l_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Left Hessian of the exponential map.
 
template<typename TangentDerived >
static Hessian d2l_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Left Hessian of the log map.
 
- Public Attributes inherited from BundleBase< Bundle< _Gs... > >
 SMOOTH_INHERIT_TYPEDEFS
 
- Static Public Attributes inherited from BundleBase< Bundle< _Gs... > >
static constexpr auto BundleSize
 Number of elements in Bundle.
 
static constexpr auto PartStart
 Part starting index (degrees of freedom).
 
static constexpr auto PartDof
 Part degrees of freedom.
 
- Static Public Attributes inherited from LieGroupBase< Derived >
static constexpr int RepSize = Impl::RepSize
 Number of scalars in internal representation.
 
static constexpr int Dof = Impl::Dof
 Degrees of freedom of manifold (equal to tangent space dimension).
 
static constexpr int Dim = Impl::Dim
 Side of Lie group matrix representation.
 
static constexpr bool IsCommutative = Impl::IsCommutative
 Commutativity of group. A commutative group has a zero Lie bracket.
 
- Protected Types inherited from LieGroupBase< Derived >
using traits = liebase_info< Derived >
 CRTP traits.
 
using Impl = typename traits::Impl
 Group-specific Lie group implementation.
 
- Static Protected Attributes inherited from LieGroupBase< Derived >
static constexpr bool is_mutable = traits::is_mutable
 True if underlying storage supports modification.
 

Detailed Description

template<LieImplemented... _Gs>
class Bundle< _Gs >

Storage implementation of Bundle lie group.

See also
BundleBase for details.

Definition at line 141 of file bundle.hpp.

Constructor & Destructor Documentation

◆ Bundle()

template<LieImplemented... _Gs>
template<typename... S>
requires (std::is_assignable_v<_Gs, S> && ...)
Bundle< _Gs >::Bundle ( S &&...  gs)
inlineexplicit

Construct Bundle from parts.

Definition at line 153 of file bundle.hpp.


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