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

lti::generalEigenVectors< T > Class Template Reference
[LAPack based functors]

Generic eigenvalues and eigenvectors computations. More...

#include <ltiGenEigVectors.h>

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

List of all members.

Classes

class  parameters
 eigenSystem parameter class More...

Public Member Functions

 generalEigenVectors ()
 generalEigenVectors (const parameters &theParams)
 generalEigenVectors (const bool left)
virtual ~generalEigenVectors ()
const parametersgetParameters () const
virtual functorclone () 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

Detailed Description

template<class T>
class lti::generalEigenVectors< T >

Generic eigenvalues and eigenvectors computations.

Use LAPack functions to compute the eigenvalues and eigenvectors of a matrix.

See also:
LAPack based functors

Constructor & Destructor Documentation

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

default constructor

template<class T >
lti::generalEigenVectors< T >::generalEigenVectors ( const parameters theParams  ) 

constructor, sets the parameters

template<class T >
lti::generalEigenVectors< T >::generalEigenVectors ( const bool  left  ) 

constructor, sets the parameters

template<class T >
virtual lti::generalEigenVectors< T >::~generalEigenVectors (  )  [virtual]

destructor


Member Function Documentation

template<class T >
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.

Parameters:
theMatrix matrix whose eigenvectors are to be computed
eigenvalues elements will contain the eigenvalues
eigenvectors columns will contain the eigenvectors corresponding to the eigenvalues
Returns:
false if theMatrix contains illegal values like NaN. All return arguments are cleared. See lti::validator.

Implements lti::eigenSystem< T >.

template<class 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.

Parameters:
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
Returns:
false if theMatrix contains illegal values like NaN. All return arguments are cleared. See lti::validator.
template<class T >
virtual functor* lti::generalEigenVectors< T >::clone (  )  const [virtual]

clone this functor

Implements lti::functor.

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

returns the current parameters.

Reimplemented from lti::eigenSystem< T >.

template<class T >
virtual const char* lti::generalEigenVectors< T >::getTypeName ( void   )  const [inline, virtual]

returns the name of this type

Reimplemented from lti::eigenSystem< T >.

template<class 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)

Parameters:
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
Returns:
false if theMatrix contains illegal values like NaN. All return arguments are cleared. See lti::validator.
template<class T >
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

Parameters:
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
Returns:
false if theMatrix contains illegal values like NaN. All return arguments are cleared. See lti::validator.

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

Generated on Sat Apr 10 15:29:14 2010 for LTI-Lib by Doxygen 1.6.1