#include <itkGeneralizedEigenDecomposition.h>
Symmetric-definite generalized eigenproblem A x = lambda B x, Eigen-backed.
Solves A x = lambda B x with A symmetric and B symmetric positive-definite, via Eigen's GeneralizedSelfAdjointEigenSolver. Eigenvalues are real and returned in ascending order; eigenvectors are the B-orthonormal columns, sign-canonicalized (each column's largest-magnitude entry positive) for cross-platform reproducibility. Results are stored in vnl containers so no Eigen type appears in the public interface.
This is the supported Eigen-backed replacement for the now-deprecated vnl_generalized_eigensystem (netlib EISPACK rsg), which emits a deprecation warning under ITK_LEGACY_REMOVE and is removed under ITK_FUTURE_LEGACY_REMOVE.
Definition at line 49 of file itkGeneralizedEigenDecomposition.h.
Public Types | |
| using | MatrixType = vnl_matrix<TReal> |
| using | VectorType = vnl_vector<TReal> |
Public Member Functions | |
| GeneralizedEigenDecomposition (const MatrixType &A, const MatrixType &B, bool canonicalizeSigns=true) | |
| const VectorType & | GetEigenvalues () const |
| const MatrixType & | GetEigenvectors () const |
Private Attributes | |
| VectorType | m_Eigenvalues |
| MatrixType | m_Eigenvectors |
| using itk::GeneralizedEigenDecomposition< TReal >::MatrixType = vnl_matrix<TReal> |
Definition at line 52 of file itkGeneralizedEigenDecomposition.h.
| using itk::GeneralizedEigenDecomposition< TReal >::VectorType = vnl_vector<TReal> |
Definition at line 53 of file itkGeneralizedEigenDecomposition.h.
|
inline |
Solve A x = lambda B x for symmetric A and symmetric-positive-definite B. 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 59 of file itkGeneralizedEigenDecomposition.h.
References itk::detail::CanonicalizeEigenvectorColumnSigns(), itk::detail::EigenComputationInfoString(), m_Eigenvalues, and m_Eigenvectors.
|
inline |
Real eigenvalues in ascending order.
Definition at line 91 of file itkGeneralizedEigenDecomposition.h.
References m_Eigenvalues.
|
inline |
B-orthonormal eigenvectors as columns, aligned with GetEigenvalues().
Definition at line 98 of file itkGeneralizedEigenDecomposition.h.
References m_Eigenvectors.
|
private |
Definition at line 104 of file itkGeneralizedEigenDecomposition.h.
Referenced by GeneralizedEigenDecomposition(), and GetEigenvalues().
|
private |
Definition at line 105 of file itkGeneralizedEigenDecomposition.h.
Referenced by GeneralizedEigenDecomposition(), and GetEigenvectors().