TooN
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
TooN::SL< N, Precision > Class Template Reference

represents an element from the group SL(n), the NxN matrices M with det(M) = 1. More...

#include <sl.h>

Public Member Functions

 SL ()
 default constructor, creates identity element
 
template<int S, typename P , typename B >
 SL (const Vector< S, P, B > &v)
 exp constructor, creates element through exponentiation of Lie algebra vector. see SL::exp.
 
template<int R, int C, typename P , typename A >
 SL (const Matrix< R, C, P, A > &M)
 copy constructor from a matrix, coerces matrix to be of determinant = 1
 
const Matrix< N, N, Precision > & get_matrix () const
 returns the represented matrix
 
SL inverse () const
 returns the inverse using LU
 
template<typename P >
SL< N, typename Internal::MultiplyType< Precision, P >::type > operator* (const SL< N, P > &rhs) const
 multiplies to SLs together by multiplying the underlying matrices
 
template<typename P >
SL operator*= (const SL< N, P > &rhs)
 right multiplies this SL with another one
 
Vector< N *N-1, Precision > ln () const
 
template<int S, typename P , typename B >
SL< N, Precision > exp (const Vector< S, P, B > &v)
 

Static Public Member Functions

template<int S, typename P , typename B >
static SL exp (const Vector< S, P, B > &)
 exponentiates a vector in the Lie algebra to compute the corresponding element More...
 
static Matrix< N, N, Precision > generator (int)
 returns one generator of the group. More...
 

Static Public Attributes

static const int size = N
 size of the matrices represented by SL<N>
 
static const int dim = N*N - 1
 dimension of the vector space represented by SL<N>
 

Friends

std::istream & operator>> (std::istream &, SL &)
 

Detailed Description

template<int N, typename Precision = DefaultPrecision>
class TooN::SL< N, Precision >

represents an element from the group SL(n), the NxN matrices M with det(M) = 1.

This can be used to conveniently estimate homographies on n-1 dimentional spaces. The implementation uses the matrix exponential function exp for exponentiation from an element in the Lie algebra and LU to compute an inverse.

The Lie algebra are the NxN matrices M with trace(M) = 0. The N*N-1 generators used to represent this vector space are the following:

Member Function Documentation

◆ exp()

template<int N, typename Precision = DefaultPrecision>
template<int S, typename P , typename B >
static SL TooN::SL< N, Precision >::exp ( const Vector< S, P, B > &  )
inlinestatic

exponentiates a vector in the Lie algebra to compute the corresponding element

◆ generator()

template<int N, typename Precision >
Matrix< N, N, Precision > TooN::SL< N, Precision >::generator ( int  i)
inlinestatic

returns one generator of the group.

see SL for a detailed description of the generators used.

  • i number of the generator between 0 and SL::dim -1 inclusive

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