Geomi
|
#include <LieAlgebraBase.hpp>
Public Member Functions | |
T_DERIVED | inverse () const |
void | inverted () |
void | operator+= (const T_DERIVED &g) |
T_DERIVED | operator+ (const T_DERIVED &g) const |
T_DERIVED | operator- (const T_DERIVED &g) const |
void | operator*= (T_SCALAR_TYPE s) |
T_DERIVED | operator* (const T_SCALAR_TYPE &s) const |
T_DERIVED | bracket (const T_DERIVED &g) const |
T_DERIVED | Ad (const T_GROUP &g) const |
T_DERIVED | Ad_star (const T_GROUP &g) const |
T_SCALAR_TYPE | norm () const |
T_GROUP | exp () const |
NOXVector< T_DOF > | toNOXVector () const |
![]() | |
T_DERIVED & | underlying () |
T_DERIVED const & | underlying () const |
Static Public Member Functions | |
static T_DERIVED | Zero () |
static T_DERIVED | static_bracket (const T_DERIVED &g1, const T_DERIVED &g2) |
static T_DERIVED | static_Ad (const T_DERIVED &a, const T_GROUP &g) |
static T_DERIVED | static_Ad_star (const T_GROUP &g, const T_DERIVED &a) |
static T_GROUP | exp (const T_DERIVED &g) |
static const unsigned int | dof () |
Static Public Attributes | |
static const unsigned int | DOF = T_DOF |
This class defines a Lie algebra \((\mathfrak g,[\cdot,\cdot])\) where \((\mathfrak g,\mathbb F,+,\cdot)\) is a vector space over the field \(\mathbb F\), with the vector space addition \( +:\mathfrak g\times\mathfrak g\rightarrow\mathfrak g\). and the scalar multiplication \(\cdot:\mathbb F\times\mathfrak g\rightarrow\mathfrak g\). Here the field \(\mathbb F\) is represented by the templated type T_SCALAR_TYPE
.
The design of the class is based on the Curious Recurring Template Pattern. The class is intended to be inherited. The function members to be implemented by the user are the following:
operator+= (const T_DERIVED&)
inverse ()
Zero ()
operator*= (T_SCALAR_TYPE)
bracket (const T_DERIVED&g)
Ad (const T_GROUP&)
Ad_star (const T_GROUP&)
norm ()
toNOXVector ()
T_DERIVED LieAlgebraBase< T_DERIVED, T_GROUP, T_DOF, T_SCALAR_TYPE >::bracket | ( | const T_DERIVED & | g | ) | const |
This function has to be implemented by the user. It should perform the Lie bracket operation \([a,b]\) where \(a\) is *this
and \(b\) is g
.
T_GROUP LieAlgebraBase< T_DERIVED, T_GROUP, T_DOF, T_SCALAR_TYPE >::exp | ( | ) | const |
Implements the exponential map \(\exp:\mathfrak{so}(3)\rightarrow SO(3)\) evalutated at *this
.
T_DERIVED LieAlgebraBase< T_DERIVED, T_GROUP, T_DOF, T_SCALAR_TYPE >::inverse | ( | ) | const |
This function has to be implemented by the user. It should return the mathematical inverse of *this
with respect to the vector space addition.
|
inline |
Inverts *this
in place.
|
inline |
Performs the scalar multiplication of g
and *this
.
void LieAlgebraBase< T_DERIVED, T_GROUP, T_DOF, T_SCALAR_TYPE >::operator*= | ( | T_SCALAR_TYPE | s | ) |
This function has to be implemented by the user. It should perform the scalar multiplication of the argument s
and *this
. The operation must be done in place.
|
inline |
Performs the vector space addition of *this
and g
.
void LieAlgebraBase< T_DERIVED, T_GROUP, T_DOF, T_SCALAR_TYPE >::operator+= | ( | const T_DERIVED & | g | ) |
This function has to be implemented by the user. It should perform the vector space addition of the argument g
and *this
. The operation must be done in place.
|
inline |
Adds *this
to the vector space addition inverse of g
.
|
inlinestatic |
Static version of bracket(const T_DERIVED&)
.
|
static |
This function has to be implemented by the user. It should return the Lie algebra representing the identity element for the vector space addition.