Honeycomb  0.1
Component-Model Framework
Public Types | Public Member Functions | List of all members
honey::Eigen< Real > Class Template Reference

Eigendecomposition. Decomposes any square (n x n) symmetric matrix $(A = A^T)$ into eigenvalues and eigenvectors. More...

#include <Eigen.h>

Public Types

typedef Matrix< matrix::dynamic, matrix::dynamic, RealMatrix
 
typedef Vec< matrix::dynamic, RealVec
 

Public Member Functions

 Eigen ()
 
template<class T >
 Eigen (const MatrixBase< T > &a)
 Calculate the eigendecomposition of symmetric matrix A. More...
 
template<class T >
Eigencalc (const MatrixBase< T > &a)
 Calculate the eigendecomposition of symmetric matrix A. The eigenvalues/vectors are sorted from largest to smallest. More...
 
template<class T >
EigencalcValues (const MatrixBase< T > &a)
 Calculate the eigenvalues of symmetric matrix A. This is a fast method for when the eigenvectors are not needed. More...
 
template<class B , class X >
void solve (const MatrixBase< B > &b, MatrixBase< X > &x)
 Solve the linear system $ Ax = B $ where A is the decomposed matrix. A and B row sizes must match. More...
 
template<class T >
void inverse (MatrixBase< T > &res)
 Calculate the inverse of A, the decomposed matrix. More...
 
const Vecw () const
 Get the eigenvalues of the decomposition. More...
 
const Matrixv () const
 Get the column eigenvectors of the decomposition. More...
 
const Matrixvt () const
 Get the row eigenvectors $ V^T $ of the decomposition. More...
 

Detailed Description

template<class Real>
class honey::Eigen< Real >

Eigendecomposition. Decomposes any square (n x n) symmetric matrix $(A = A^T)$ into eigenvalues and eigenvectors.

An eigenvector of a square matrix is a non-zero vector that when multiplied by the matrix remains parallel to the original.
An eigenvector $\vec{v}$ satisfies: $ A \vec{v} = w \vec{v} $, where w is a scalar that elongates or shrinks the vector.

The eigendecomposition of a symmetric matrix A is: $ A = V W V^T $ where V is an orthonormal matrix of column eigenvectors and W is a diagonal of eigenvalues.

Complexity: $ O(n^3) $

Member Typedef Documentation

template<class Real >
typedef Matrix<matrix::dynamic, matrix::dynamic, Real> honey::Eigen< Real >::Matrix
template<class Real >
typedef Vec<matrix::dynamic, Real> honey::Eigen< Real >::Vec

Constructor & Destructor Documentation

template<class Real >
honey::Eigen< Real >::Eigen ( )
inline
template<class Real >
template<class T >
honey::Eigen< Real >::Eigen ( const MatrixBase< T > &  a)
inline

Calculate the eigendecomposition of symmetric matrix A.

Member Function Documentation

template<class Real >
template<class T >
Eigen& honey::Eigen< Real >::calc ( const MatrixBase< T > &  a)
inline

Calculate the eigendecomposition of symmetric matrix A. The eigenvalues/vectors are sorted from largest to smallest.

template<class Real >
template<class T >
Eigen& honey::Eigen< Real >::calcValues ( const MatrixBase< T > &  a)
inline

Calculate the eigenvalues of symmetric matrix A. This is a fast method for when the eigenvectors are not needed.

template<class Real >
template<class T >
void honey::Eigen< Real >::inverse ( MatrixBase< T > &  res)
inline

Calculate the inverse of A, the decomposed matrix.

template<class Real >
template<class B , class X >
void honey::Eigen< Real >::solve ( const MatrixBase< B > &  b,
MatrixBase< X > &  x 
)
inline

Solve the linear system $ Ax = B $ where A is the decomposed matrix. A and B row sizes must match.

template<class Real >
const Matrix& honey::Eigen< Real >::v ( ) const
inline

Get the column eigenvectors of the decomposition.

template<class Real >
const Matrix& honey::Eigen< Real >::vt ( ) const
inline

Get the row eigenvectors $ V^T $ of the decomposition.

template<class Real >
const Vec& honey::Eigen< Real >::w ( ) const
inline

Get the eigenvalues of the decomposition.


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