Public Types | Public Member Functions | Protected Attributes
EigenSolver< _MatrixType > Class Template Reference

Eigen values/vectors solver for non selfadjoint matrices. More...

List of all members.

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: