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

#include <itkGeneralizedEigenDecomposition.h>

Detailed Description

template<typename TReal>
class itk::GeneralizedEigenDecomposition< TReal >

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 VectorTypeGetEigenvalues () const
 
const MatrixTypeGetEigenvectors () const
 

Private Attributes

VectorType m_Eigenvalues
 
MatrixType m_Eigenvectors
 

Member Typedef Documentation

◆ MatrixType

template<typename TReal>
using itk::GeneralizedEigenDecomposition< TReal >::MatrixType = vnl_matrix<TReal>

Definition at line 52 of file itkGeneralizedEigenDecomposition.h.

◆ VectorType

template<typename TReal>
using itk::GeneralizedEigenDecomposition< TReal >::VectorType = vnl_vector<TReal>

Definition at line 53 of file itkGeneralizedEigenDecomposition.h.

Constructor & Destructor Documentation

◆ GeneralizedEigenDecomposition()

template<typename TReal>
itk::GeneralizedEigenDecomposition< TReal >::GeneralizedEigenDecomposition ( const MatrixType & A,
const MatrixType & B,
bool canonicalizeSigns = true )
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.

Member Function Documentation

◆ GetEigenvalues()

template<typename TReal>
const VectorType & itk::GeneralizedEigenDecomposition< TReal >::GetEigenvalues ( ) const
inline

Real eigenvalues in ascending order.

Definition at line 91 of file itkGeneralizedEigenDecomposition.h.

References m_Eigenvalues.

◆ GetEigenvectors()

template<typename TReal>
const MatrixType & itk::GeneralizedEigenDecomposition< TReal >::GetEigenvectors ( ) const
inline

B-orthonormal eigenvectors as columns, aligned with GetEigenvalues().

Definition at line 98 of file itkGeneralizedEigenDecomposition.h.

References m_Eigenvectors.

Member Data Documentation

◆ m_Eigenvalues

template<typename TReal>
VectorType itk::GeneralizedEigenDecomposition< TReal >::m_Eigenvalues
private

◆ m_Eigenvectors

template<typename TReal>
MatrixType itk::GeneralizedEigenDecomposition< TReal >::m_Eigenvectors
private

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