latest version v1.9 - last update 10 Apr 2010 |
This functor is meant to be used for solving any symmetric Eigenvalue problem without need to think about the most efficient usage of the available methods. More...
#include <ltiUnifiedSymmetricEigenSystem.h>
Classes | |
class | parameters |
the parameters for the class unifiedSymmetricEigenSystem More... | |
Public Member Functions | |
unifiedSymmetricEigenSystem () | |
unifiedSymmetricEigenSystem (const parameters &par) | |
unifiedSymmetricEigenSystem (const unifiedSymmetricEigenSystem &other) | |
virtual | ~unifiedSymmetricEigenSystem () |
virtual const char * | getTypeName () const |
unifiedSymmetricEigenSystem & | copy (const unifiedSymmetricEigenSystem &other) |
unifiedSymmetricEigenSystem & | operator= (const unifiedSymmetricEigenSystem &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 > &theMatrix, vector< T > &eigenvalues, matrix< T > &eigenvectors) const |
Protected Attributes | |
eigenSystem< T > * | eigen |
This functor is meant to be used for solving any symmetric Eigenvalue problem without need to think about the most efficient usage of the available methods.
If LAPACK is available it will automatically be used since it is much faster than other implementations in the LTI-Lib.
This functor only handles symmetric Eigenvalue problems. For non-symmetric or general EV problems there is only a LAPACK functor: genEigenSystem. For the generalized symmetric eigenvalue problem use unifiedGeneralizedEigenSystem.
It is preferred to use this class instead of the symmetric eigenSystem functors available (fastEigenSystem, jacobi).
lti::unifiedSymmetricEigenSystem< T >::unifiedSymmetricEigenSystem | ( | ) |
default constructor
lti::unifiedSymmetricEigenSystem< T >::unifiedSymmetricEigenSystem | ( | const parameters & | par | ) |
Construct a functor using the given parameters.
lti::unifiedSymmetricEigenSystem< T >::unifiedSymmetricEigenSystem | ( | const unifiedSymmetricEigenSystem< T > & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::unifiedSymmetricEigenSystem< T >::~unifiedSymmetricEigenSystem | ( | ) | [virtual] |
destructor
bool lti::unifiedSymmetricEigenSystem< T >::apply | ( | const matrix< T > & | theMatrix, | |
vector< T > & | eigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const [inline] |
The apply method calls the eigenSystem method chosen in the parameters or automatically derived from the system configuration.
theMatrix | matrix to be transformed | |
eigenvalues | elements will contain the eigenvalues | |
eigenvectors | columns will contain the eigenvectors corresponding to the eigenvalues |
References lti::unifiedSymmetricEigenSystem< T >::eigen.
virtual functor* lti::unifiedSymmetricEigenSystem< T >::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Implements lti::functor.
unifiedSymmetricEigenSystem& lti::unifiedSymmetricEigenSystem< T >::copy | ( | const unifiedSymmetricEigenSystem< T > & | other | ) |
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::functor.
const parameters& lti::unifiedSymmetricEigenSystem< T >::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::functor.
virtual const char* lti::unifiedSymmetricEigenSystem< T >::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("unifiedSymmetricEigenSystem")
Reimplemented from lti::linearAlgebraFunctor.
unifiedSymmetricEigenSystem& lti::unifiedSymmetricEigenSystem< T >::operator= | ( | const unifiedSymmetricEigenSystem< T > & | other | ) |
virtual bool lti::unifiedSymmetricEigenSystem< 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::unifiedSymmetricEigenSystem< T >::updateParameters | ( | ) | [virtual] |
set functor's parameters.
This member makes a copy of theParam: the functor will keep its own copy of the parameters!
Reimplemented from lti::functor.
eigenSystem<T>* lti::unifiedSymmetricEigenSystem< T >::eigen [protected] |
The actual eigenSystem.
Referenced by lti::unifiedSymmetricEigenSystem< T >::apply().