Eigen values/vectors solver for non selfadjoint matrices. More...
#include <EigenSolver.h>
Public Types | |
typedef std::complex< RealScalar > | Complex |
typedef Matrix< Complex, MatrixType::ColsAtCompileTime, 1 > | EigenvalueType |
typedef Matrix< Complex, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime > | EigenvectorType |
typedef _MatrixType | MatrixType |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef Matrix< RealScalar, MatrixType::ColsAtCompileTime, 1 > | RealVectorType |
typedef Matrix< RealScalar, Dynamic, 1 > | RealVectorTypeX |
typedef MatrixType::Scalar | Scalar |
Public Member Functions | |
void | compute (const MatrixType &matrix) |
EigenSolver (const MatrixType &matrix) | |
EigenSolver () | |
Default Constructor. | |
EigenvalueType | eigenvalues () const |
EigenvectorType | eigenvectors (void) const |
MatrixType | pseudoEigenvalueMatrix () const |
const MatrixType & | pseudoEigenvectors () const |
Protected Attributes | |
EigenvalueType | m_eivalues |
MatrixType | m_eivec |
bool | m_isInitialized |
Private Member Functions | |
void | hqr2 (MatrixType &matH) |
void | orthes (MatrixType &matH, RealVectorType &ort) |
Eigen values/vectors solver for non selfadjoint matrices.
MatrixType | the type of the matrix of which we are computing the eigen decomposition |
Currently it only support real matrices.
Definition at line 43 of file EigenSolver.h.
typedef std::complex<RealScalar> EigenSolver< _MatrixType >::Complex |
Definition at line 50 of file EigenSolver.h.
typedef Matrix<Complex, MatrixType::ColsAtCompileTime, 1> EigenSolver< _MatrixType >::EigenvalueType |
Definition at line 51 of file EigenSolver.h.
typedef Matrix<Complex, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime> EigenSolver< _MatrixType >::EigenvectorType |
Definition at line 52 of file EigenSolver.h.
typedef _MatrixType EigenSolver< _MatrixType >::MatrixType |
Definition at line 47 of file EigenSolver.h.
typedef NumTraits<Scalar>::Real EigenSolver< _MatrixType >::RealScalar |
Definition at line 49 of file EigenSolver.h.
typedef Matrix<RealScalar, MatrixType::ColsAtCompileTime, 1> EigenSolver< _MatrixType >::RealVectorType |
Definition at line 53 of file EigenSolver.h.
typedef Matrix<RealScalar, Dynamic, 1> EigenSolver< _MatrixType >::RealVectorTypeX |
Definition at line 54 of file EigenSolver.h.
typedef MatrixType::Scalar EigenSolver< _MatrixType >::Scalar |
Definition at line 48 of file EigenSolver.h.
EigenSolver< _MatrixType >::EigenSolver | ( | ) | [inline] |
Default Constructor.
The default constructor is useful in cases in which the user intends to perform decompositions via EigenSolver::compute(const MatrixType&).
Definition at line 62 of file EigenSolver.h.
EigenSolver< _MatrixType >::EigenSolver | ( | const MatrixType & | matrix | ) | [inline] |
Definition at line 64 of file EigenSolver.h.
void EigenSolver< MatrixType >::compute | ( | const MatrixType & | matrix | ) | [inline] |
Definition at line 192 of file EigenSolver.h.
EigenvalueType EigenSolver< _MatrixType >::eigenvalues | ( | ) | const [inline] |
Definition at line 115 of file EigenSolver.h.
EigenSolver< MatrixType >::EigenvectorType EigenSolver< MatrixType >::eigenvectors | ( | void | ) | const [inline] |
Definition at line 163 of file EigenSolver.h.
void EigenSolver< MatrixType >::hqr2 | ( | MatrixType & | matH | ) | [inline, private] |
Definition at line 295 of file EigenSolver.h.
void EigenSolver< MatrixType >::orthes | ( | MatrixType & | matH, | |
RealVectorType & | ort | |||
) | [inline, private] |
Definition at line 212 of file EigenSolver.h.
MatrixType EigenSolver< MatrixType >::pseudoEigenvalueMatrix | ( | ) | const [inline] |
See pseudoEigenvectors() for the details.
Definition at line 139 of file EigenSolver.h.
const MatrixType& EigenSolver< _MatrixType >::pseudoEigenvectors | ( | ) | const [inline] |
Let D be the block diagonal matrix with the real eigenvalues in 1x1 blocks, and any complex values u+iv in 2x2 blocks [u v ; -v u]. Then, the matrices D and V satisfy A*V = V*D.
More precisely, if the diagonal matrix of the eigen values is:
then, we have:
Definition at line 106 of file EigenSolver.h.
EigenvalueType EigenSolver< _MatrixType >::m_eivalues [protected] |
Definition at line 130 of file EigenSolver.h.
MatrixType EigenSolver< _MatrixType >::m_eivec [protected] |
Definition at line 129 of file EigenSolver.h.
bool EigenSolver< _MatrixType >::m_isInitialized [protected] |
Definition at line 131 of file EigenSolver.h.