ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itk::SymmetricEigenDecomposition< T > Class Template Reference

#include <itkSymmetricEigenDecomposition.h>

Detailed Description

template<typename T>
class itk::SymmetricEigenDecomposition< T >

Stored eigendecomposition of a real symmetric matrix, Eigen-backed.

Computes A = V D V^T for symmetric A in the constructor and stores the result. Eigenvalues (D) are real and ascending; the columns of V are the orthonormal eigenvectors, sign-canonicalized (each column's largest-magnitude entry is positive) for cross-platform reproducibility. The public V / D members and the get_eigenvector / get_eigenvalue accessors mirror the legacy vnl_symmetric_eigensystem layout, so its call sites port by changing only the type name, with no Eigen type in the interface.

This is the supported Eigen-backed replacement for the now-deprecated vnl_symmetric_eigensystem (netlib EISPACK rs), which emits a deprecation warning under ITK_LEGACY_REMOVE and is removed under ITK_FUTURE_LEGACY_REMOVE.

Note
Distinct from itk::SymmetricEigenAnalysis, which is a configurable solver object (SetDimension / SetOrderEigenValues) that writes results into caller-supplied output arguments and is tuned for repeated per-pixel tensor eigenanalysis; it does not canonicalize eigenvector signs. This class is a single-shot stored decomposition. Prefer SymmetricEigenAnalysis for high-throughput fixed-size tensor work; prefer this for vnl_symmetric_eigensystem-style usage.
See also
SymmetricEigenAnalysis

Definition at line 60 of file itkSymmetricEigenDecomposition.h.

Public Member Functions

get_eigenvalue (int i) const
 
vnl_vector< T > get_eigenvector (int i) const
 
vnl_vector< T > nullvector () const
 
vnl_matrix< T > recompose () const
 
 SymmetricEigenDecomposition (const vnl_matrix< T > &M, bool canonicalizeSigns=true)
 

Public Attributes

vnl_diag_matrix< T > D
 
vnl_matrix< T > V
 

Constructor & Destructor Documentation

◆ SymmetricEigenDecomposition()

template<typename T>
itk::SymmetricEigenDecomposition< T >::SymmetricEigenDecomposition ( const vnl_matrix< T > & M,
bool canonicalizeSigns = true )
inlineexplicit

Compute the decomposition of symmetric M. With canonicalizeSigns (the default) each eigenvector column's largest-magnitude entry is made positive for cross-platform reproducibility; pass false to keep the solver's raw signs.

Definition at line 67 of file itkSymmetricEigenDecomposition.h.

References itk::detail::CanonicalizeEigenvectorColumnSigns(), D, itk::detail::EigenComputationInfoString(), and V.

Member Function Documentation

◆ get_eigenvalue()

template<typename T>
T itk::SymmetricEigenDecomposition< T >::get_eigenvalue ( int i) const
inline

◆ get_eigenvector()

template<typename T>
vnl_vector< T > itk::SymmetricEigenDecomposition< T >::get_eigenvector ( int i) const
inline

Recover the i-th eigenvector (column i of V).

Definition at line 101 of file itkSymmetricEigenDecomposition.h.

References V.

◆ nullvector()

template<typename T>
vnl_vector< T > itk::SymmetricEigenDecomposition< T >::nullvector ( ) const
inline

Least-squares nullvector: eigenvector of the smallest eigenvalue.

Definition at line 115 of file itkSymmetricEigenDecomposition.h.

References V.

◆ recompose()

template<typename T>
vnl_matrix< T > itk::SymmetricEigenDecomposition< T >::recompose ( ) const
inline

Reconstruct V D V^T (useful after modifying D).

Definition at line 122 of file itkSymmetricEigenDecomposition.h.

References D, and V.

Member Data Documentation

◆ D

template<typename T>
vnl_diag_matrix<T> itk::SymmetricEigenDecomposition< T >::D

Eigenvalues in increasing order, stored as a diagonal matrix.

Definition at line 97 of file itkSymmetricEigenDecomposition.h.

Referenced by get_eigenvalue(), recompose(), and SymmetricEigenDecomposition().

◆ V

template<typename T>
vnl_matrix<T> itk::SymmetricEigenDecomposition< T >::V

Eigenvectors as columns, sorted by increasing eigenvalue.

Definition at line 94 of file itkSymmetricEigenDecomposition.h.

Referenced by get_eigenvector(), nullvector(), recompose(), and SymmetricEigenDecomposition().


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