2 #ifndef vnl_symmetric_eigensystem_h_ 3 #define vnl_symmetric_eigensystem_h_ 54 #include <vnl/algo/vnl_algo_export.h> 140 #define VNL_SYMMETRIC_EIGENSYSTEM_INSTANTIATE(T) \ 141 extern "please include vnl/algo/vnl_symmetric_eigensystem.hxx first" 143 #endif // vnl_symmetric_eigensystem_h_ An ordinary mathematical matrix.
vnl_matrix< T > V
Public eigenvectors.
vnl_diag_matrix< T > D
Public eigenvalues.
vnl_matrix< T > square_root() const
return the square root, if positive semi-definite.
Computes and stores the eigensystem decomposition of a symmetric matrix.
vnl_symmetric_eigensystem(vnl_matrix< T > const &M)
Solve real symmetric eigensystem $A x = \lambda x$.
T get_eigenvalue(int i) const
Recover specified eigenvalue after computation.
An ordinary mathematical matrix.
vnl_matrix< T > recompose() const
Return the matrix $V D V^\top$.
vnl_vector< T > get_eigenvector(int i) const
Recover specified eigenvector after computation.
void solve(vnl_vector< T > const &b, vnl_vector< T > *x)
Solve LS problem M x = b.
Mathematical vector class, templated by type of element.
vnl_matrix< T > pinverse() const
return the pseudoinverse.
void vnl_symmetric_eigensystem_compute_eigenvals(T M11, T M12, T M13, T M22, T M23, T M33, T &l1, T &l2, T &l3)
Find eigenvalues of a symmetric 3x3 matrix.
T determinant() const
return product of eigenvalues.
stores a diagonal matrix as a single vector.
vnl_vector< T > nullvector() const
Convenience method to get least-squares nullvector.
vnl_matrix< T > inverse_square_root() const
return the inverse of the square root, if positive semi-definite.
Contains class for diagonal matrices.
vnl_vector< T > solve(vnl_vector< T > const &b)
Solve LS problem M x = b.
bool vnl_symmetric_eigensystem_compute(vnl_matrix< T > const &A, vnl_matrix< T > &V, vnl_vector< T > &D)
Find eigenvalues of a symmetric matrix.