TooN::SL< N, Precision > Class Template Reference
[Transformation matrices]

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

#include <sl.h>

List of all members.

Public Member Functions

 SL ()
template<int S, typename P, typename B>
 SL (const Vector< S, P, B > &v)
template<int R, int C, typename P, typename A>
 SL (Matrix< R, C, P, A > &M)
const Matrix< N, N,
Precision > & 
get_matrix () const
SL inverse () const
SL operator * (const SL &rhs) const
SL operator *= (const SL &rhs)

Static Public Member Functions

template<int S, typename P, typename B>
static SL exp (const Vector< S, P, B > &)
static Matrix< N, N,
Precision > 
generator (int)

Static Public Attributes

static const int size = N
static const int dim = N*N - 1

Friends

std::istream & o (std::istream &, SL &)

Classes

struct  Invert


Detailed Description

template<int N, typename Precision = double>
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:


Constructor & Destructor Documentation

template<int N, typename Precision = double>
TooN::SL< N, Precision >::SL (  ) 

default constructor, creates identity element

template<int N, typename Precision = double>
template<int S, typename P, typename B>
TooN::SL< N, Precision >::SL ( const Vector< S, P, B > &  v  ) 

exp constructor, creates element through exponentiation of Lie algebra vector. see SL::exp.

template<int N, typename Precision = double>
template<int R, int C, typename P, typename A>
TooN::SL< N, Precision >::SL ( Matrix< R, C, P, A > &  M  ) 

copy constructor from a matrix, coerces matrix to be of determinant = 1


Member Function Documentation

template<int N, typename Precision = double>
const Matrix<N,N,Precision>& TooN::SL< N, Precision >::get_matrix (  )  const

returns the represented matrix

template<int N, typename Precision = double>
SL TooN::SL< N, Precision >::inverse (  )  const

returns the inverse using LU

template<int N, typename Precision = double>
SL TooN::SL< N, Precision >::operator * ( const SL< N, Precision > &  rhs  )  const

multiplies to SLs together by multiplying the underlying matrices

template<int N, typename Precision = double>
SL TooN::SL< N, Precision >::operator *= ( const SL< N, Precision > &  rhs  ) 

right multiplies this SL with another one

template<int N, typename Precision>
template<int S, typename P, typename B>
SL< N, Precision > TooN::SL< N, Precision >::exp ( const Vector< S, P, B > &  v  )  [static]

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

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

returns one generator of the group.

see SL for a detailed description of the generators used.


Member Data Documentation

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::size = N [static]

size of the matrices represented by SL<N>

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::dim = N*N - 1 [static]

dimension of the vector space represented by SL<N>


Generated on Thu May 7 20:28:41 2009 for TooN by  doxygen 1.5.3