latest version v1.9 - last update 10 Apr 2010 |
Generic eigenvalues and eigenvectors computations. More...
#include <ltiGenEigVectors.h>
Classes | |
class | parameters |
eigenSystem parameter class More... | |
Public Member Functions | |
generalEigenVectors () | |
generalEigenVectors (const parameters &theParams) | |
generalEigenVectors (const bool left) | |
virtual | ~generalEigenVectors () |
const parameters & | getParameters () const |
virtual functor * | clone () const |
virtual bool | apply (const matrix< T > &theMatrix, vector< T > &eigenvalues, vector< T > &iEigenvalues, matrix< T > &eigenvectors) const |
virtual bool | apply (const matrix< T > &theMatrix, vector< T > &eigenvalues, matrix< T > &eigenvectors) const |
bool | leftEigenVectors (const matrix< T > &theMatrix, vector< T > &eigenvalues, vector< T > &iEigenvalues, matrix< T > &eigenvectors) const |
bool | rightEigenVectors (const matrix< T > &theMatrix, vector< T > &eigenvalues, vector< T > &iEigenvalues, matrix< T > &eigenvectors) const |
virtual const char * | getTypeName () const |
Generic eigenvalues and eigenvectors computations.
Use LAPack functions to compute the eigenvalues and eigenvectors of a matrix.
lti::generalEigenVectors< T >::generalEigenVectors | ( | ) |
default constructor
lti::generalEigenVectors< T >::generalEigenVectors | ( | const parameters & | theParams | ) |
constructor, sets the parameters
lti::generalEigenVectors< T >::generalEigenVectors | ( | const bool | left | ) |
constructor, sets the parameters
virtual lti::generalEigenVectors< T >::~generalEigenVectors | ( | ) | [virtual] |
destructor
virtual bool lti::generalEigenVectors< T >::apply | ( | const matrix< T > & | theMatrix, | |
vector< T > & | eigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const [virtual] |
Computes left or right eigenvalues and eigenvectors of the given matrix.
Which kind will be computed depends on the value of getParameters().leftVector. WARNING: This apply method ignores imaginary parts of the eigenvalues. So if the eigenvalues are in fact complex, you get wrong results.
theMatrix | matrix whose eigenvectors are to be computed | |
eigenvalues | elements will contain the eigenvalues | |
eigenvectors | columns will contain the eigenvectors corresponding to the eigenvalues |
Implements lti::eigenSystem< T >.
virtual bool lti::generalEigenVectors< T >::apply | ( | const matrix< T > & | theMatrix, | |
vector< T > & | eigenvalues, | |||
vector< T > & | iEigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const [virtual] |
Computes left or right eigenvalues and eigenvectors of the given matrix.
Which kind will be computed depends on the value of getParameters().leftVector.
theMatrix | matrix whose eigenvectors are to be computed | |
eigenvalues | elements will contain the eigenvalues | |
iEigenvalues | elements will contain the imaginary part of the eigenvalues | |
eigenvectors | columns will contain the eigenvectors corresponding to the eigenvalues |
virtual functor* lti::generalEigenVectors< T >::clone | ( | ) | const [virtual] |
clone this functor
Implements lti::functor.
const parameters& lti::generalEigenVectors< T >::getParameters | ( | ) | const |
returns the current parameters.
Reimplemented from lti::eigenSystem< T >.
virtual const char* lti::generalEigenVectors< T >::getTypeName | ( | void | ) | const [inline, virtual] |
returns the name of this type
Reimplemented from lti::eigenSystem< T >.
bool lti::generalEigenVectors< T >::leftEigenVectors | ( | const matrix< T > & | theMatrix, | |
vector< T > & | eigenvalues, | |||
vector< T > & | iEigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const |
Computes left eigenvalues and eigenvectors of the given matrix.
"Left" means that eigenvalues e and eigenvectors v will obey the following law: v'A = ev' (v' meaning transpose of v)
theMatrix | matrix whose eigenvectors are to be computed | |
eigenvalues | elements will contain the eigenvalues | |
iEigenvalues | elements will contain the imaginary part of the eigenvalues | |
eigenvectors | columns will contain the eigenvectors corresponding to the eigenvalues |
bool lti::generalEigenVectors< T >::rightEigenVectors | ( | const matrix< T > & | theMatrix, | |
vector< T > & | eigenvalues, | |||
vector< T > & | iEigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const |
Computes right eigenvalues and eigenvectors of the given matrix.
"Right" means that eigenvalues e and eigenvectors v will obey the following law: Av = ev
theMatrix | matrix whose eigenvectors are to be computed | |
eigenvalues | elements will contain the eigenvalues | |
iEigenvalues | elements will contain the imaginary part of the eigenvalues | |
eigenvectors | columns will contain the eigenvectors corresponding to the eigenvalues |