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

#include <itkRealEigenDecomposition.h>

Detailed Description

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

Eigenvalues and eigenvectors of a general real matrix, backed by Eigen.

Solves the eigenproblem of a general (non-symmetric) real matrix once in the constructor via Eigen's EigenSolver; the spectrum is in general complex. Results are stored as vnl containers of std::complex so no Eigen type appears in the public interface. For a symmetric matrix prefer SymmetricEigenDecomposition (real spectrum, faster).

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

Note
A complex eigenvector is defined only up to an arbitrary unit-modulus phase (not merely a sign), so no deterministic phase canonicalization is applied here (unlike the real-vector SymmetricEigenDecomposition / GeneralizedEigenDecomposition). Migrate to the identity A V == V D rather than to specific eigenvector phases.

Definition at line 54 of file itkRealEigenDecomposition.h.

Public Types

using ComplexMatrixType = vnl_matrix<ComplexType>
 
using ComplexType = std::complex<TReal>
 
using ComplexVectorType = vnl_vector<ComplexType>
 

Public Member Functions

const ComplexVectorTypeGetEigenvalues () const
 
const ComplexMatrixTypeGetEigenvectors () const
 
 RealEigenDecomposition (const vnl_matrix< TReal > &M)
 

Private Attributes

ComplexVectorType m_Eigenvalues
 
ComplexMatrixType m_Eigenvectors
 

Member Typedef Documentation

◆ ComplexMatrixType

template<typename TReal>
using itk::RealEigenDecomposition< TReal >::ComplexMatrixType = vnl_matrix<ComplexType>

Definition at line 58 of file itkRealEigenDecomposition.h.

◆ ComplexType

template<typename TReal>
using itk::RealEigenDecomposition< TReal >::ComplexType = std::complex<TReal>

Definition at line 57 of file itkRealEigenDecomposition.h.

◆ ComplexVectorType

template<typename TReal>
using itk::RealEigenDecomposition< TReal >::ComplexVectorType = vnl_vector<ComplexType>

Definition at line 59 of file itkRealEigenDecomposition.h.

Constructor & Destructor Documentation

◆ RealEigenDecomposition()

template<typename TReal>
itk::RealEigenDecomposition< TReal >::RealEigenDecomposition ( const vnl_matrix< TReal > & M)
inlineexplicit

Member Function Documentation

◆ GetEigenvalues()

template<typename TReal>
const ComplexVectorType & itk::RealEigenDecomposition< TReal >::GetEigenvalues ( ) const
inline

Complex eigenvalues, one per column of M (unsorted, Eigen order).

Definition at line 84 of file itkRealEigenDecomposition.h.

References m_Eigenvalues.

◆ GetEigenvectors()

template<typename TReal>
const ComplexMatrixType & itk::RealEigenDecomposition< TReal >::GetEigenvectors ( ) const
inline

Complex eigenvectors as columns, aligned with GetEigenvalues().

Definition at line 91 of file itkRealEigenDecomposition.h.

References m_Eigenvectors.

Member Data Documentation

◆ m_Eigenvalues

template<typename TReal>
ComplexVectorType itk::RealEigenDecomposition< TReal >::m_Eigenvalues
private

Definition at line 97 of file itkRealEigenDecomposition.h.

Referenced by GetEigenvalues(), and RealEigenDecomposition().

◆ m_Eigenvectors

template<typename TReal>
ComplexMatrixType itk::RealEigenDecomposition< TReal >::m_Eigenvectors
private

Definition at line 98 of file itkRealEigenDecomposition.h.

Referenced by GetEigenvectors(), and RealEigenDecomposition().


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