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.
 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: