EigenSolver< _MatrixType > Class Template Reference

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

#include <EigenSolver.h>

List of all members.

Public Types

typedef std::complex< RealScalarComplex
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 MatrixTypepseudoEigenvectors () 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)

Detailed Description

template<typename _MatrixType>
class EigenSolver< _MatrixType >

Eigen values/vectors solver for non selfadjoint matrices.

Parameters:
MatrixType the 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

Definition at line 43 of file EigenSolver.h.


Member Typedef Documentation

template<typename _MatrixType >
typedef std::complex<RealScalar> EigenSolver< _MatrixType >::Complex

Definition at line 50 of file EigenSolver.h.

template<typename _MatrixType >
typedef Matrix<Complex, MatrixType::ColsAtCompileTime, 1> EigenSolver< _MatrixType >::EigenvalueType

Definition at line 51 of file EigenSolver.h.

template<typename _MatrixType >
typedef Matrix<Complex, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime> EigenSolver< _MatrixType >::EigenvectorType

Definition at line 52 of file EigenSolver.h.

template<typename _MatrixType >
typedef _MatrixType EigenSolver< _MatrixType >::MatrixType

Definition at line 47 of file EigenSolver.h.

template<typename _MatrixType >
typedef NumTraits<Scalar>::Real EigenSolver< _MatrixType >::RealScalar

Definition at line 49 of file EigenSolver.h.

template<typename _MatrixType >
typedef Matrix<RealScalar, MatrixType::ColsAtCompileTime, 1> EigenSolver< _MatrixType >::RealVectorType

Definition at line 53 of file EigenSolver.h.

template<typename _MatrixType >
typedef Matrix<RealScalar, Dynamic, 1> EigenSolver< _MatrixType >::RealVectorTypeX

Definition at line 54 of file EigenSolver.h.

template<typename _MatrixType >
typedef MatrixType::Scalar EigenSolver< _MatrixType >::Scalar

Definition at line 48 of file EigenSolver.h.


Constructor & Destructor Documentation

template<typename _MatrixType >
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.

template<typename _MatrixType >
EigenSolver< _MatrixType >::EigenSolver ( const MatrixType matrix  )  [inline]

Definition at line 64 of file EigenSolver.h.


Member Function Documentation

template<typename MatrixType >
void EigenSolver< MatrixType >::compute ( const MatrixType matrix  )  [inline]

Definition at line 192 of file EigenSolver.h.

template<typename _MatrixType >
EigenvalueType EigenSolver< _MatrixType >::eigenvalues (  )  const [inline]
Returns:
the eigenvalues as a column vector

Definition at line 115 of file EigenSolver.h.

template<typename MatrixType >
EigenSolver< MatrixType >::EigenvectorType EigenSolver< MatrixType >::eigenvectors ( void   )  const [inline]
Returns:
the normalized complex eigenvectors as a matrix of column vectors.
See also:
eigenvalues(), pseudoEigenvectors()

Definition at line 163 of file EigenSolver.h.

template<typename MatrixType >
void EigenSolver< MatrixType >::hqr2 ( MatrixType matH  )  [inline, private]

Definition at line 295 of file EigenSolver.h.

template<typename MatrixType >
void EigenSolver< MatrixType >::orthes ( MatrixType matH,
RealVectorType ort 
) [inline, private]

Definition at line 212 of file EigenSolver.h.

template<typename MatrixType >
MatrixType EigenSolver< MatrixType >::pseudoEigenvalueMatrix (  )  const [inline]
Returns:
the real block diagonal matrix D of the eigenvalues.

See pseudoEigenvectors() for the details.

Definition at line 139 of file EigenSolver.h.

template<typename _MatrixType >
const MatrixType& EigenSolver< _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()

Definition at line 106 of file EigenSolver.h.


Member Data Documentation

template<typename _MatrixType >
EigenvalueType EigenSolver< _MatrixType >::m_eivalues [protected]

Definition at line 130 of file EigenSolver.h.

template<typename _MatrixType >
MatrixType EigenSolver< _MatrixType >::m_eivec [protected]

Definition at line 129 of file EigenSolver.h.

template<typename _MatrixType >
bool EigenSolver< _MatrixType >::m_isInitialized [protected]

Definition at line 131 of file EigenSolver.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


vcglib
Author(s): Christian Bersch
autogenerated on Fri Jan 11 09:22:03 2013