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

lti::unifiedGeneralizedEigenSystem< T > Class Template Reference

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>

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

List of all members.

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
unifiedGeneralizedEigenSystemcopy (const unifiedGeneralizedEigenSystem &other)
unifiedGeneralizedEigenSystemoperator= (const unifiedGeneralizedEigenSystem &other)
virtual functorclone () const
virtual bool updateParameters ()
const parametersgetParameters () 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

Detailed Description

template<class T>
class lti::unifiedGeneralizedEigenSystem< T >

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.


Constructor & Destructor Documentation

default constructor

template<class T >
lti::unifiedGeneralizedEigenSystem< T >::unifiedGeneralizedEigenSystem ( const parameters par  ) 

Construct a functor using the given parameters.

copy constructor

Parameters:
other the object to be copied
template<class T >
virtual lti::unifiedGeneralizedEigenSystem< T >::~unifiedGeneralizedEigenSystem (  )  [virtual]

destructor


Member Function Documentation

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

Parameters:
a the symmetric matrix A
b the symmetric, positive definite matrix B
eigenvalues elements will contain the eigenvalues

References lti::unifiedGeneralizedEigenSystem< T >::eigen.

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

Parameters:
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.

template<class T >
virtual functor* lti::unifiedGeneralizedEigenSystem< T >::clone (  )  const [virtual]

returns a pointer to a clone of this functor.

Implements lti::functor.

template<class T >
unifiedGeneralizedEigenSystem& lti::unifiedGeneralizedEigenSystem< T >::copy ( const unifiedGeneralizedEigenSystem< T > &  other  ) 

copy data of "other" functor.

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

Reimplemented from lti::functor.

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

returns used parameters

Reimplemented from lti::functor.

template<class T >
virtual const char* lti::unifiedGeneralizedEigenSystem< T >::getTypeName (  )  const [virtual]

returns the name of this type ("unifiedGeneralizedEigenSystem")

Reimplemented from lti::linearAlgebraFunctor.

template<class T >
unifiedGeneralizedEigenSystem& lti::unifiedGeneralizedEigenSystem< T >::operator= ( const unifiedGeneralizedEigenSystem< T > &  other  ) 

alias for copy member

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

Reimplemented from lti::functor.

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

Parameters:
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.
Returns:
true if write was successful

Reimplemented from lti::functor.

template<class T >
virtual bool lti::unifiedGeneralizedEigenSystem< T >::updateParameters (  )  [virtual]

Update functor's parameters.

Update some internal data according to the parameters.

Returns:
true if successful, false otherwise

Reimplemented from lti::functor.


Member Data Documentation

template<class T >
generalizedEigenSystem<T>* lti::unifiedGeneralizedEigenSystem< T >::eigen [protected]

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

Generated on Sat Apr 10 15:28:49 2010 for LTI-Lib by Doxygen 1.6.1