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:
![$ D =\left[ \begin{array}{cccccc} u & v & & & & \\ -v & u & & & & \\ & & a & b & & \\ & & -b & a & & \\ & & & & x & \\ & & & & & y \\ \end{array} \right] $](form_44.png)
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.