Public Member Functions | Public Attributes | Protected Attributes | List of all members
vnl_symmetric_eigensystem< T > Class Template Reference

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

#include <vnl_algo_fwd.h>

Public Member Functions

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

Public Attributes

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

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 9 of file vnl_algo_fwd.h.

Constructor & Destructor Documentation

◆ vnl_symmetric_eigensystem()

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

Solve real symmetric eigensystem $A x = \lambda x$.

Definition at line 140 of file vnl_symmetric_eigensystem.hxx.

Member Function Documentation

◆ determinant()

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

return product of eigenvalues.

Definition at line 178 of file vnl_symmetric_eigensystem.hxx.

◆ get_eigenvalue()

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.hxx.

◆ get_eigenvector()

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.hxx.

◆ inverse_square_root()

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.hxx.

◆ nullvector()

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

◆ pinverse()

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

return the pseudoinverse.

Definition at line 188 of file vnl_symmetric_eigensystem.hxx.

◆ recompose()

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

Return the matrix $V D V^\top$.

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

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

Definition at line 119 of file vnl_symmetric_eigensystem.h.

◆ solve() [1/2]

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.hxx.

◆ solve() [2/2]

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

◆ square_root()

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.hxx.

Member Data Documentation

◆ D

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 std::vector while behaving as a matrix.

Definition at line 99 of file vnl_symmetric_eigensystem.h.

◆ n_

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

Definition at line 88 of file vnl_symmetric_eigensystem.h.

◆ V

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


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