Public Member Functions | Public Attributes | Protected Attributes
vnl_symmetric_eigensystem< T > Class Template Reference

Computes and stores the eigensystem decomposition of a symmetric matrix. More...

#include <vnl_symmetric_eigensystem.h>

List of all members.

Public Member Functions

 vnl_symmetric_eigensystem (vnl_matrix< T > const &M)
 Solve real symmetric eigensystem $A x = x$.
vnl_vector< T > get_eigenvector (int i) const
 Recover specified eigenvector after computation.
get_eigenvalue (int i) const
 Recover specified eigenvalue after computation.
vnl_vector< T > nullvector () const
 Convenience method to get least-squares nullvector.
vnl_matrix< T > recompose () const
 Return the matrix $V D V^$.
determinant () const
 return product of eigenvalues.
vnl_matrix< T > pinverse () const
 return the pseudoinverse.
vnl_matrix< T > square_root () const
 return the square root, if positive semi-definite.
vnl_matrix< T > inverse_square_root () const
 return the inverse of the square root, if positive semi-definite.
vnl_vector< T > solve (vnl_vector< T > const &b)
 Solve LS problem M x = b.
void solve (vnl_vector< T > const &b, vnl_vector< T > *x)
 Solve LS problem M x = b.

Public Attributes

vnl_matrix< T > V
 Public eigenvectors.
vnl_diag_matrix< T > D
 Public eigenvalues.

Protected Attributes

int n_

Detailed Description

template<class T>
class vnl_symmetric_eigensystem< T >

Computes and stores the eigensystem decomposition of a symmetric matrix.

Definition at line 81 of file vnl_symmetric_eigensystem.h.


Constructor & Destructor Documentation

template<class T >
vnl_symmetric_eigensystem< T >::vnl_symmetric_eigensystem ( vnl_matrix< T > const &  M)

Solve real symmetric eigensystem $A x = x$.

Definition at line 140 of file vnl_symmetric_eigensystem.txx.


Member Function Documentation

template<class T >
T vnl_symmetric_eigensystem< T >::determinant ( ) const

return product of eigenvalues.

Definition at line 178 of file vnl_symmetric_eigensystem.txx.

template<class T >
T vnl_symmetric_eigensystem< T >::get_eigenvalue ( int  i) const

Recover specified eigenvalue after computation.

Definition at line 159 of file vnl_symmetric_eigensystem.txx.

template<class T >
vnl_vector< T > vnl_symmetric_eigensystem< T >::get_eigenvector ( int  i) const

Recover specified eigenvector after computation.

Definition at line 153 of file vnl_symmetric_eigensystem.txx.

template<class T >
vnl_matrix< T > vnl_symmetric_eigensystem< T >::inverse_square_root ( ) const

return the inverse of the square root, if positive semi-definite.

Definition at line 219 of file vnl_symmetric_eigensystem.txx.

template<class T>
vnl_vector<T> vnl_symmetric_eigensystem< T >::nullvector ( ) const [inline]

Convenience method to get least-squares nullvector.

It is deliberate that the signature is the same as on vnl_svd<T>.

Definition at line 111 of file vnl_symmetric_eigensystem.h.

template<class T >
vnl_matrix< T > vnl_symmetric_eigensystem< T >::pinverse ( ) const

return the pseudoinverse.

Definition at line 188 of file vnl_symmetric_eigensystem.txx.

template<class T>
vnl_matrix<T> vnl_symmetric_eigensystem< T >::recompose ( ) const [inline]

Return the matrix $V D V^$.

This can be useful if you've modified $D$. So an inverse is obtained using

   vnl_symmetric_eigensystem} eig(A);
   eig.D.invert_in_place}();
   vnl_matrix<double> Ainverse = eig.recompose();

Definition at line 121 of file vnl_symmetric_eigensystem.h.

template<class T >
vnl_vector< T > vnl_symmetric_eigensystem< T >::solve ( vnl_vector< T > const &  b)

Solve LS problem M x = b.

Definition at line 165 of file vnl_symmetric_eigensystem.txx.

template<class T>
void vnl_symmetric_eigensystem< T >::solve ( vnl_vector< T > const &  b,
vnl_vector< T > *  x 
) [inline]

Solve LS problem M x = b.

Definition at line 139 of file vnl_symmetric_eigensystem.h.

template<class T >
vnl_matrix< T > vnl_symmetric_eigensystem< T >::square_root ( ) const

return the square root, if positive semi-definite.

Definition at line 203 of file vnl_symmetric_eigensystem.txx.


Member Data Documentation

template<class T>
vnl_diag_matrix<T> vnl_symmetric_eigensystem< T >::D

Public eigenvalues.

After construction, D contains the eigenvalues, sorted as described above. Note that D is a vnl_diag_matrix, and is therefore stored as a vcl_vector while behaving as a matrix.

Definition at line 101 of file vnl_symmetric_eigensystem.h.

template<class T>
int vnl_symmetric_eigensystem< T >::n_ [protected]

Definition at line 90 of file vnl_symmetric_eigensystem.h.

template<class T>
vnl_matrix<T> vnl_symmetric_eigensystem< T >::V

Public eigenvectors.

After construction, the columns of V are the eigenvectors, sorted by increasing eigenvalue, from most negative to most positive.

Definition at line 96 of file vnl_symmetric_eigensystem.h.


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