vnl_symmetric_eigensystem< T > Class Template Reference

#include <vnl_symmetric_eigensystem.h>

List of all members.


Detailed Description

template<class T>
class vnl_symmetric_eigensystem< T >

Computes and stores the eigensystem decomposition of a symmetric matrix.

Definition at line 83 of file vnl_symmetric_eigensystem.h.


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_

Constructor & Destructor Documentation

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

Solve real symmetric eigensystem $A x = x$.

Definition at line 152 of file vnl_symmetric_eigensystem.cxx.


Member Function Documentation

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

Recover specified eigenvector after computation.

Definition at line 165 of file vnl_symmetric_eigensystem.cxx.

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

Recover specified eigenvalue after computation.

Definition at line 171 of file vnl_symmetric_eigensystem.cxx.

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 113 of file vnl_symmetric_eigensystem.h.

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 123 of file vnl_symmetric_eigensystem.h.

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

return product of eigenvalues.

Definition at line 190 of file vnl_symmetric_eigensystem.cxx.

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

return the pseudoinverse.

Definition at line 200 of file vnl_symmetric_eigensystem.cxx.

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

return the square root, if positive semi-definite.

Definition at line 215 of file vnl_symmetric_eigensystem.cxx.

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

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

Definition at line 231 of file vnl_symmetric_eigensystem.cxx.

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

Solve LS problem M x = b.

Definition at line 177 of file vnl_symmetric_eigensystem.cxx.

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 141 of file vnl_symmetric_eigensystem.h.


Member Data Documentation

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

Definition at line 92 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 98 of file vnl_symmetric_eigensystem.h.

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 103 of file vnl_symmetric_eigensystem.h.


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

Generated on Sun Nov 22 06:17:28 2009 for core/vnl by  doxygen 1.5.5