LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::symmetricMatrixInversion< T > Class Template Reference
[Linear Algebra]

Functor for inversion of symmetric, positive definite matrices. More...

#include <ltiSymmetricMatrixInversion.h>

Inheritance diagram for lti::symmetricMatrixInversion< T >:
Inheritance graph
[legend]
Collaboration diagram for lti::symmetricMatrixInversion< T >:
Collaboration graph
[legend]

List of all members.

Classes

class  parameters
 the parameters for the class symmetricMatrixInversion More...

Public Member Functions

 symmetricMatrixInversion ()
 symmetricMatrixInversion (const parameters &par)
 symmetricMatrixInversion (const symmetricMatrixInversion &other)
virtual ~symmetricMatrixInversion ()
virtual const char * getTypeName () const
bool apply (matrix< T > &srcdest) const
bool apply (const matrix< T > &src, matrix< T > &dest) const
symmetricMatrixInversioncopy (const symmetricMatrixInversion &other)
symmetricMatrixInversionoperator= (const symmetricMatrixInversion &other)
virtual functorclone () const
const parametersgetParameters () const

Protected Member Functions

bool choleskyInversion (const matrix< T > &m, matrix< T > &inv) const
bool invert2 (const matrix< T > &m, matrix< T > &inv) const
bool invert3 (const matrix< T > &m, matrix< T > &inv) const
bool invert4 (const matrix< T > &m, matrix< T > &inv) const

Protected Attributes

choleskyDecomposition< T > chol

Detailed Description

template<class T>
class lti::symmetricMatrixInversion< T >

Functor for inversion of symmetric, positive definite matrices.

The functor uses the choleskyDecomposition for inversion unless the size of the matrix is smaller than or equal to four. In that case the cofactor method is used which can handle matrices that are not positiv definite but requires them to be non-singular.

See also:
lti::matrixInversion

Constructor & Destructor Documentation

template<class T >
lti::symmetricMatrixInversion< T >::symmetricMatrixInversion (  ) 

default constructor

template<class T >
lti::symmetricMatrixInversion< T >::symmetricMatrixInversion ( const parameters par  ) 

Construct a functor using the given parameters.

template<class T >
lti::symmetricMatrixInversion< T >::symmetricMatrixInversion ( const symmetricMatrixInversion< T > &  other  ) 

copy constructor

Parameters:
other the object to be copied
template<class T >
virtual lti::symmetricMatrixInversion< T >::~symmetricMatrixInversion (  )  [virtual]

destructor


Member Function Documentation

template<class T >
bool lti::symmetricMatrixInversion< T >::apply ( const matrix< T > &  src,
matrix< T > &  dest 
) const

Inverts the symmetric matrix src and leaves the result in dest.

If the dimension of src ist greater than 4 it must be positive definite as well.

Parameters:
src matrix<T> with the source data.
dest matrix<T> where the result will be left.
Returns:
true if apply successful or false otherwise.
template<class T >
bool lti::symmetricMatrixInversion< T >::apply ( matrix< T > &  srcdest  )  const

Inverts the symmetric matrix srcdest.

If the dimension of srcdest ist greater than 4 it must be positive definite as well.

Parameters:
srcdest matrix<T> with the source data. The result will be left here too.
Returns:
true if apply successful or false otherwise.
template<class T >
bool lti::symmetricMatrixInversion< T >::choleskyInversion ( const matrix< T > &  m,
matrix< T > &  inv 
) const [protected]

invert the matrix m using the cholesky decomposition

template<class T >
virtual functor* lti::symmetricMatrixInversion< T >::clone (  )  const [virtual]

returns a pointer to a clone of this functor.

Implements lti::functor.

template<class T >
symmetricMatrixInversion& lti::symmetricMatrixInversion< T >::copy ( const symmetricMatrixInversion< T > &  other  ) 

copy data of "other" functor.

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

Reimplemented from lti::functor.

template<class T >
const parameters& lti::symmetricMatrixInversion< T >::getParameters (  )  const

returns used parameters

Reimplemented from lti::functor.

template<class T >
virtual const char* lti::symmetricMatrixInversion< T >::getTypeName (  )  const [virtual]

returns the name of this type ("symmetricMatrixInversion")

Reimplemented from lti::linearAlgebraFunctor.

template<class T >
bool lti::symmetricMatrixInversion< T >::invert2 ( const matrix< T > &  m,
matrix< T > &  inv 
) const [protected]

inverts a 2x2 matrix

template<class T >
bool lti::symmetricMatrixInversion< T >::invert3 ( const matrix< T > &  m,
matrix< T > &  inv 
) const [protected]

inverts a 3x3 matrix

template<class T >
bool lti::symmetricMatrixInversion< T >::invert4 ( const matrix< T > &  m,
matrix< T > &  inv 
) const [protected]

inverts a 4x4 matrix

template<class T >
symmetricMatrixInversion& lti::symmetricMatrixInversion< T >::operator= ( const symmetricMatrixInversion< T > &  other  ) 

alias for copy member

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

Reimplemented from lti::functor.


Member Data Documentation

template<class T >
choleskyDecomposition<T> lti::symmetricMatrixInversion< T >::chol [protected]

Cholesky Decomposition functor.


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

Generated on Sat Apr 10 15:28:47 2010 for LTI-Lib by Doxygen 1.6.1