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

lti::unifiedSymmetricEigenSystem< T > Class Template Reference

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>

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

List of all members.

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
unifiedSymmetricEigenSystemcopy (const unifiedSymmetricEigenSystem &other)
unifiedSymmetricEigenSystemoperator= (const unifiedSymmetricEigenSystem &other)
virtual functorclone () const
virtual bool updateParameters ()
const parametersgetParameters () 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

Detailed Description

template<class T>
class lti::unifiedSymmetricEigenSystem< T >

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).


Constructor & Destructor Documentation

default constructor

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

Construct a functor using the given parameters.

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

copy constructor

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

destructor


Member Function Documentation

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

Parameters:
theMatrix matrix to be transformed
eigenvalues elements will contain the eigenvalues
eigenvectors columns will contain the eigenvectors corresponding to the eigenvalues
Returns:
bool true if successful, false otherwise.

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

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

returns a pointer to a clone of this functor.

Implements lti::functor.

template<class T >
unifiedSymmetricEigenSystem& lti::unifiedSymmetricEigenSystem< T >::copy ( const unifiedSymmetricEigenSystem< 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::unifiedSymmetricEigenSystem< T >::getParameters (  )  const

returns used parameters

Reimplemented from lti::functor.

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

returns the name of this type ("unifiedSymmetricEigenSystem")

Reimplemented from lti::linearAlgebraFunctor.

template<class T >
unifiedSymmetricEigenSystem& lti::unifiedSymmetricEigenSystem< T >::operator= ( const unifiedSymmetricEigenSystem< 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::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.

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::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!

Returns:
true if successful, false otherwise

Reimplemented from lti::functor.


Member Data Documentation

template<class T >
eigenSystem<T>* lti::unifiedSymmetricEigenSystem< T >::eigen [protected]

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

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