# template struct mrpt::poses::Lie::SO<2>

Traits for SO(2), rotations in R^2 space.

#include <mrpt/poses/Lie/SO.h>

template <>
struct SO<2>
{
// typedefs

typedef mrpt::math::CVectorFixedDouble<DOFs> tangent_vector;
typedef double type;
typedef mrpt::math::CMatrixFixed<double, 1, 1> tang2mat_jacob;
typedef mrpt::math::CMatrixFixed<double, 1, 1> mat2tang_jacob;

//
fields

static constexpr size_t DOFs = 1;

//
methods

static type exp(const tangent_vector& x);
static tangent_vector log(const type& R);
static tang2mat_jacob jacob_dexpe_de(const tangent_vector& x);
static mat2tang_jacob jacob_dlogv_dv(const type& R);
};

## Typedefs

typedef mrpt::math::CMatrixFixed<double, 1, 1> tang2mat_jacob

Type for Jacobian: tangent space to SO(n) matrix.

typedef mrpt::math::CMatrixFixed<double, 1, 1> mat2tang_jacob

Type for Jacobian: SO(n) matrix to tangent space.

## Methods

static type exp(const tangent_vector& x)

SO(2) exponential map $$x \rightarrow \exp(x^\wedge)$$.

• Input: 1-len vector in Lie algebra so(3)

• Output: angle for the rotation (radians)

static tangent_vector log(const type& R)

SO(2) logarithm map $$\mathbf{R} \rightarrow \log(\mathbf{R}^\vee)$$.

static tang2mat_jacob jacob_dexpe_de(const tangent_vector& x)
Jacobian for exp(), the identity matrix [ 1 ]
static mat2tang_jacob jacob_dlogv_dv(const type& R)
Jacobian for log(), the identity matrix [ 1 ]