#include <sl.h>
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 |
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:
default constructor, creates identity element
TooN::SL< N, Precision >::SL | ( | const Vector< S, P, B > & | v | ) |
exp constructor, creates element through exponentiation of Lie algebra vector. see SL::exp.
TooN::SL< N, Precision >::SL | ( | Matrix< R, C, P, A > & | M | ) |
copy constructor from a matrix, coerces matrix to be of determinant = 1
const Matrix<N,N,Precision>& TooN::SL< N, Precision >::get_matrix | ( | ) | const |
returns the represented matrix
returns the inverse using LU
SL TooN::SL< N, Precision >::operator * | ( | const SL< N, Precision > & | rhs | ) | const |
multiplies to SLs together by multiplying the underlying matrices
SL TooN::SL< N, Precision >::operator *= | ( | const SL< N, Precision > & | rhs | ) |
right multiplies this SL with another one
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
size of the matrices represented by SL<N>
const int TooN::SL< N, Precision >::dim = N*N - 1 [static] |
dimension of the vector space represented by SL<N>