Eigen values/vectors solver for non selfadjoint matrices. More...
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 |
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.
EigenSolver | ( | ) | [inline] |
Default Constructor.
The default constructor is useful in cases in which the user intends to perform decompositions via EigenSolver::compute(const MatrixType&).
EigenvalueType eigenvalues | ( | ) | const [inline] |
EigenSolver< MatrixType >::EigenvectorType eigenvectors | ( | void | ) | const |
MatrixType pseudoEigenvalueMatrix | ( | ) | const |
See pseudoEigenvectors() for the details.
const 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: