latest version v1.9 - last update 10 Apr 2010 |
Functor for inversion of symmetric, positive definite matrices. More...
#include <ltiSymmetricMatrixInversion.h>
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 |
symmetricMatrixInversion & | copy (const symmetricMatrixInversion &other) |
symmetricMatrixInversion & | operator= (const symmetricMatrixInversion &other) |
virtual functor * | clone () const |
const parameters & | getParameters () 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 |
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.
lti::symmetricMatrixInversion< T >::symmetricMatrixInversion | ( | ) |
default constructor
lti::symmetricMatrixInversion< T >::symmetricMatrixInversion | ( | const parameters & | par | ) |
Construct a functor using the given parameters.
lti::symmetricMatrixInversion< T >::symmetricMatrixInversion | ( | const symmetricMatrixInversion< T > & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::symmetricMatrixInversion< T >::~symmetricMatrixInversion | ( | ) | [virtual] |
destructor
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.
src | matrix<T> with the source data. | |
dest | matrix<T> where the result will be left. |
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.
srcdest | matrix<T> with the source data. The result will be left here too. |
bool lti::symmetricMatrixInversion< T >::choleskyInversion | ( | const matrix< T > & | m, | |
matrix< T > & | inv | |||
) | const [protected] |
invert the matrix m using the cholesky decomposition
virtual functor* lti::symmetricMatrixInversion< T >::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Implements lti::functor.
symmetricMatrixInversion& lti::symmetricMatrixInversion< T >::copy | ( | const symmetricMatrixInversion< T > & | other | ) |
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::functor.
const parameters& lti::symmetricMatrixInversion< T >::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::functor.
virtual const char* lti::symmetricMatrixInversion< T >::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("symmetricMatrixInversion")
Reimplemented from lti::linearAlgebraFunctor.
bool lti::symmetricMatrixInversion< T >::invert2 | ( | const matrix< T > & | m, | |
matrix< T > & | inv | |||
) | const [protected] |
inverts a 2x2 matrix
bool lti::symmetricMatrixInversion< T >::invert3 | ( | const matrix< T > & | m, | |
matrix< T > & | inv | |||
) | const [protected] |
inverts a 3x3 matrix
bool lti::symmetricMatrixInversion< T >::invert4 | ( | const matrix< T > & | m, | |
matrix< T > & | inv | |||
) | const [protected] |
inverts a 4x4 matrix
symmetricMatrixInversion& lti::symmetricMatrixInversion< T >::operator= | ( | const symmetricMatrixInversion< T > & | other | ) |
choleskyDecomposition<T> lti::symmetricMatrixInversion< T >::chol [protected] |
Cholesky Decomposition functor.