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, Real > Matrix
 
typedef Vec< matrix::dynamic, Real > Vec
 

Public Member Functions

 Eigen ()
 
template<class T >
 Eigen (const MatrixBase< T > &a)
 Calculate the eigendecomposition of symmetric matrix A. More...
 
template<class T >
Eigen & calc (const MatrixBase< T > &a)
 Calculate the eigendecomposition of symmetric matrix A. The eigenvalues/vectors are sorted from largest to smallest. More...
 
template<class T >
Eigen & calcValues (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 Vec & w () const
 Get the eigenvalues of the decomposition. More...
 
const Matrix & v () const
 Get the column eigenvectors of the decomposition. More...
 
const Matrix & vt () 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: