latest version v1.9 - last update 10 Apr 2010 |
Computes all the eigenvalues, and optionally, the eigenvectors of a real generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x. More...
#include <ltiGeneralizedEigenSystem.h>
Classes | |
class | parameters |
the parameters for the class generalizedEigenSystem More... | |
Public Member Functions | |
generalizedEigenSystem () | |
generalizedEigenSystem (const parameters &par) | |
generalizedEigenSystem (const generalizedEigenSystem &other) | |
virtual | ~generalizedEigenSystem () |
virtual const char * | getTypeName () const |
virtual bool | apply (const matrix< T > &a, const matrix< T > &b, vector< T > &eigenvalues, matrix< T > &eigenvectors) const |
virtual bool | apply (const matrix< T > &a, const matrix< T > &b, vector< T > &eigenvalues) const |
generalizedEigenSystem & | copy (const generalizedEigenSystem &other) |
generalizedEigenSystem & | operator= (const generalizedEigenSystem &other) |
virtual functor * | clone () const |
const parameters & | getParameters () const |
virtual bool | updateParameters () |
Computes all the eigenvalues, and optionally, the eigenvectors of a real generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x.
Here A and B are assumed to be symmetric and B is also positive definite.
If parameters::sort is true the eigenvalues and corresponding eigenvectors are sorted in descending order. Default is true.
lti::generalizedEigenSystem< T >::generalizedEigenSystem | ( | ) |
default constructor
lti::generalizedEigenSystem< T >::generalizedEigenSystem | ( | const parameters & | par | ) |
Construct a functor using the given parameters.
lti::generalizedEigenSystem< T >::generalizedEigenSystem | ( | const generalizedEigenSystem< T > & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::generalizedEigenSystem< T >::~generalizedEigenSystem | ( | ) | [virtual] |
destructor
virtual bool lti::generalizedEigenSystem< T >::apply | ( | const matrix< T > & | a, | |
const matrix< T > & | b, | |||
vector< T > & | eigenvalues | |||
) | const [virtual] |
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.
a | the symmetric matrix A | |
b | the symmetric, positive definite matrix B | |
eigenvalues | elements will contain the eigenvalues |
Reimplemented in lti::fastGeneralizedEigenSystem< T >.
virtual bool lti::generalizedEigenSystem< T >::apply | ( | const matrix< T > & | a, | |
const matrix< T > & | b, | |||
vector< T > & | eigenvalues, | |||
matrix< T > & | eigenvectors | |||
) | const [virtual] |
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.
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 |
Reimplemented in lti::fastGeneralizedEigenSystem< T >.
virtual functor* lti::generalizedEigenSystem< T >::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Implements lti::functor.
Reimplemented in lti::fastGeneralizedEigenSystem< T >.
generalizedEigenSystem& lti::generalizedEigenSystem< T >::copy | ( | const generalizedEigenSystem< T > & | other | ) |
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::functor.
const parameters& lti::generalizedEigenSystem< T >::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::functor.
Reimplemented in lti::fastGeneralizedEigenSystem< T >.
virtual const char* lti::generalizedEigenSystem< T >::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("generalizedEigenSystem")
Reimplemented from lti::linearAlgebraFunctor.
Reimplemented in lti::fastGeneralizedEigenSystem< T >.
generalizedEigenSystem& lti::generalizedEigenSystem< T >::operator= | ( | const generalizedEigenSystem< T > & | other | ) |
virtual bool lti::generalizedEigenSystem< 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.