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.

Classes

struct  Invert

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 (const 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 & operator>> (std::istream &, SL &)


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

SL (  ) 

default constructor, creates identity element

Referenced by SL< N, Precision >::inverse(), and SL< N, Precision >::operator*().

SL ( const Vector< S, P, B > &  v  ) 

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

References SL< N, Precision >::exp().

SL ( const Matrix< R, C, P, A > &  M  ) 

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


Member Function Documentation

const Matrix<N,N,Precision>& get_matrix (  )  const

returns the represented matrix

SL inverse (  )  const

returns the inverse using LU

References SL< N, Precision >::SL().

SL operator* ( const SL< N, Precision > &  rhs  )  const

multiplies to SLs together by multiplying the underlying matrices

References SL< N, Precision >::SL().

SL operator*= ( const SL< N, Precision > &  rhs  ) 

right multiplies this SL with another one

SL< N, Precision > exp ( const Vector< S, P, B > &  v  )  [static]

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

References SL< N, Precision >::dim, SL< N, Precision >::generator(), Vector< Size, Precision, Base >::size(), and TooN::Zeros.

Referenced by SL< N, Precision >::SL().

Matrix< N, N, Precision > generator ( int  i  )  [static]

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

References SL< N, Precision >::dim, and TooN::Zeros.

Referenced by SL< N, Precision >::exp().


Member Data Documentation

const int size = N [static]

size of the matrices represented by SL<N>

const int dim = N*N - 1 [static]

dimension of the vector space represented by SL<N>

Referenced by SL< N, Precision >::exp(), and SL< N, Precision >::generator().


Generated on Tue Oct 27 16:09:25 2009 for TooN by  doxygen 1.5.9