latest version v1.9 - last update 10 Apr 2010 |
This functor is meant to be used for solving any generalized Eigenvalue problem without need to think about the most efficient usage of the available methods. More...
#include <ltiUnifiedGeneralizedEigenSystem.h>
Classes | |
class | parameters |
the parameters for the class unifiedGeneralizedEigenSystem. More... | |
Public Member Functions | |
unifiedGeneralizedEigenSystem () | |
unifiedGeneralizedEigenSystem (const parameters &par) | |
unifiedGeneralizedEigenSystem (const unifiedGeneralizedEigenSystem &other) | |
virtual | ~unifiedGeneralizedEigenSystem () |
virtual const char * | getTypeName () const |
unifiedGeneralizedEigenSystem & | copy (const unifiedGeneralizedEigenSystem &other) |
unifiedGeneralizedEigenSystem & | operator= (const unifiedGeneralizedEigenSystem &other) |
virtual functor * | clone () const |
virtual bool | updateParameters () |
const parameters & | getParameters () const |
virtual bool | read (ioHandler &handler, const bool complete=true) |
bool | apply (const matrix< T > &a, const matrix< T > &b, vector< T > &eigenvalues, matrix< T > &eigenvectors) const |
bool | apply (const matrix< T > &a, const matrix< T > &b, vector< T > &eigenvalues) const |
Protected Attributes | |
generalizedEigenSystem< T > * | eigen |
This functor is meant to be used for solving any generalized Eigenvalue problem without need to think about the most efficient usage of the available methods.
If the LAPACK is available it will automatically be used since it is much faster.
This functor only handles generalized Eigenvalue problems. For non-generalized EV problems use there is only a LAPACK functor: genEigenSystem. For the generalized eigenvalue problem either generalizedEigenSystem or fastGeneralizedEigenSystem can be used.
It is preferred to use this class instead of the generalized eigenSystem functors available.
lti::unifiedGeneralizedEigenSystem< T >::unifiedGeneralizedEigenSystem | ( | ) |
default constructor
lti::unifiedGeneralizedEigenSystem< T >::unifiedGeneralizedEigenSystem | ( | const parameters & | par | ) |
Construct a functor using the given parameters.
lti::unifiedGeneralizedEigenSystem< T >::unifiedGeneralizedEigenSystem | ( | const unifiedGeneralizedEigenSystem< T > & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::unifiedGeneralizedEigenSystem< T >::~unifiedGeneralizedEigenSystem | ( | ) | [virtual] |
destructor
bool lti::unifiedGeneralizedEigenSystem< T >::apply | ( | const matrix< T > & | a, | |
const matrix< T > & | b, | |||
vector< T > & | eigenvalues | |||
) | const [inline] |
Computes eigenvalues and eigenvectors of the given matrix.
The functor can efficiently calculate only a few dimensions of the eigenspace, taking those with the largest eigenvalues. The number of dimensions is set with parameters::dimensions.
a | the symmetric matrix A | |
b | the symmetric, positive definite matrix B | |
eigenvalues | elements will contain the eigenvalues |
References lti::unifiedGeneralizedEigenSystem< T >::eigen.
bool lti::unifiedGeneralizedEigenSystem< T >::apply | ( | const matrix< T > & | a, | |
const matrix< T > & | b, | |||
vector< T > & | eigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const [inline] |
Computes eigenvalues and eigenvectors of the given matrix.
The functor can efficiently calculate only a few dimensions of the eigenspace, taking those with the largest eigenvalues. The number of dimensions is set with parameters::dimensions.
a | the symmetric matrix A | |
b | the symmetric, positive definite matrix B | |
eigenvalues | elements will contain the eigenvalues | |
eigenvectors | columns will contain the eigenvectors corresponding to the eigenvalues |
References lti::unifiedGeneralizedEigenSystem< T >::eigen.
virtual functor* lti::unifiedGeneralizedEigenSystem< T >::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Implements lti::functor.
unifiedGeneralizedEigenSystem& lti::unifiedGeneralizedEigenSystem< T >::copy | ( | const unifiedGeneralizedEigenSystem< T > & | other | ) |
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::functor.
const parameters& lti::unifiedGeneralizedEigenSystem< T >::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::functor.
virtual const char* lti::unifiedGeneralizedEigenSystem< T >::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("unifiedGeneralizedEigenSystem")
Reimplemented from lti::linearAlgebraFunctor.
unifiedGeneralizedEigenSystem& lti::unifiedGeneralizedEigenSystem< T >::operator= | ( | const unifiedGeneralizedEigenSystem< T > & | other | ) |
virtual bool lti::unifiedGeneralizedEigenSystem< T >::read | ( | ioHandler & | handler, | |
const bool | complete = true | |||
) | [virtual] |
Read the functor from the given ioHandler.
This method automatically sets the correct eigensystem solver that is given in the parameters and transfers the relevant parameters to that functor.
handler | the ioHandler to be used | |
complete | if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written. |
Reimplemented from lti::functor.
virtual bool lti::unifiedGeneralizedEigenSystem< T >::updateParameters | ( | ) | [virtual] |
Update functor's parameters.
Update some internal data according to the parameters.
Reimplemented from lti::functor.
generalizedEigenSystem<T>* lti::unifiedGeneralizedEigenSystem< T >::eigen [protected] |
The actual eigenSystem.
Referenced by lti::unifiedGeneralizedEigenSystem< T >::apply().