Public Types | Public Member Functions | Protected Attributes | List of all members
EigenSolver< _MatrixType > Class Template Reference

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 ()
 Default Constructor. More...
 
 EigenSolver (const MatrixType &matrix)
 
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
 

Detailed Description

template<typename _MatrixType>
class Eigen::EigenSolver< _MatrixType >

Eigen values/vectors solver for non selfadjoint matrices.

Warning
This is not considered to be part of the stable public API yet. Changes may happen in future releases. See Experimental parts of Eigen
Parameters
MatrixTypethe type of the matrix of which we are computing the eigen decomposition

Currently it only support real matrices.

Note
this code was adapted from JAMA (public domain)
See Also
MatrixBase::eigenvalues(), SelfAdjointEigenSolver

Constructor & Destructor Documentation

EigenSolver ( )
inline

Default Constructor.

The default constructor is useful in cases in which the user intends to perform decompositions via EigenSolver::compute(const MatrixType&).

Member Function Documentation

EigenvalueType eigenvalues ( ) const
inline
Returns
the eigenvalues as a column vector
EigenSolver< MatrixType >::EigenvectorType eigenvectors ( void  ) const
Returns
the normalized complex eigenvectors as a matrix of column vectors.
See Also
eigenvalues(), pseudoEigenvectors()
MatrixType pseudoEigenvalueMatrix ( ) const
Returns
the real block diagonal matrix D of the eigenvalues.

See pseudoEigenvectors() for the details.

const MatrixType& pseudoEigenvectors ( ) const
inline
Returns
a real matrix V of pseudo eigenvectors.

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:
$ \left[ \begin{array}{cccccc} u+iv & & & & & \\ & u-iv & & & & \\ & & a+ib & & & \\ & & & a-ib & & \\ & & & & x & \\ & & & & & y \\ \end{array} \right] $
then, we have:
$ D =\left[ \begin{array}{cccccc} u & v & & & & \\ -v & u & & & & \\ & & a & b & & \\ & & -b & a & & \\ & & & & x & \\ & & & & & y \\ \end{array} \right] $

See Also
pseudoEigenvalueMatrix()

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