ITK  5.1.0
Insight Toolkit
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix > Class Template Reference

#include <itkSymmetricEigenAnalysis.h>

+ Inheritance diagram for itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >:
+ Collaboration diagram for itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >:

Public Types

using EigenMatrixType = TEigenMatrix
 
using EigenValueOrderType = EigenValueOrderEnum
 
using MatrixType = TMatrix
 
using VectorType = TVector
 

Public Member Functions

unsigned int ComputeEigenValues (const TMatrix &A, TVector &EigenValues) const
 
unsigned int ComputeEigenValuesAndVectors (const TMatrix &A, TVector &EigenValues, TEigenMatrix &EigenVectors) const
 
constexpr unsigned int GetDimension () const
 
constexpr unsigned int GetOrder () const
 
bool GetOrderEigenMagnitudes () const
 
bool GetOrderEigenValues () const
 
constexpr bool GetUseEigenLibrary () const
 
void SetOrderEigenMagnitudes (const bool b)
 
void SetOrderEigenValues (const bool b)
 
 SymmetricEigenAnalysisFixedDimension ()
 
 ~SymmetricEigenAnalysisFixedDimension ()=default
 

Private Member Functions

template<typename QMatrix >
auto ComputeEigenValuesAndVectorsWithEigenLibraryImpl (const QMatrix &A, TVector &EigenValues, TEigenMatrix &EigenVectors, bool) const -> decltype(GetPointerToMatrixData(A), static_cast< unsigned int >(1))
 
template<typename QMatrix >
auto ComputeEigenValuesAndVectorsWithEigenLibraryImpl (const QMatrix &A, TVector &EigenValues, TEigenMatrix &EigenVectors, long) const -> decltype(static_cast< unsigned int >(1))
 
template<typename QMatrix >
auto ComputeEigenValuesWithEigenLibraryImpl (const QMatrix &A, TVector &EigenValues, bool) const -> decltype(GetPointerToMatrixData(A), static_cast< unsigned int >(1))
 
template<typename QMatrix >
auto ComputeEigenValuesWithEigenLibraryImpl (const QMatrix &A, TVector &EigenValues, long) const -> decltype(static_cast< unsigned int >(1))
 
template<typename QMatrix = TMatrix>
auto GetMatrixValueType (bool) const -> typename QMatrix::element_type
 
template<typename QMatrix = TMatrix>
auto GetMatrixValueType (bool) const -> typename QMatrix::ValueType
 

Private Attributes

EigenValueOrderType m_OrderEigenValues
 

Detailed Description

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
class itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >

Definition at line 734 of file itkSymmetricEigenAnalysis.h.

Member Typedef Documentation

◆ EigenMatrixType

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
using itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::EigenMatrixType = TEigenMatrix

Definition at line 753 of file itkSymmetricEigenAnalysis.h.

◆ EigenValueOrderType

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
using itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::EigenValueOrderType = EigenValueOrderEnum

Enables reverse compatibility for enumeration values

Definition at line 738 of file itkSymmetricEigenAnalysis.h.

◆ MatrixType

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
using itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::MatrixType = TMatrix

Definition at line 752 of file itkSymmetricEigenAnalysis.h.

◆ VectorType

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
using itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::VectorType = TVector

Definition at line 754 of file itkSymmetricEigenAnalysis.h.

Constructor & Destructor Documentation

◆ SymmetricEigenAnalysisFixedDimension()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::SymmetricEigenAnalysisFixedDimension ( )
inline

Definition at line 747 of file itkSymmetricEigenAnalysis.h.

◆ ~SymmetricEigenAnalysisFixedDimension()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::~SymmetricEigenAnalysisFixedDimension ( )
default

Member Function Documentation

◆ ComputeEigenValues()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
unsigned int itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::ComputeEigenValues ( const TMatrix &  A,
TVector &  EigenValues 
) const
inline

Compute Eigen values of A A is any type that overloads the [][] operator and contains the symmetric matrix. In practice only the upper triangle of the matrix will be accessed. (Both itk::Matrix and vnl_matrix overload [][] operator.)

'EigenValues' is any type that overloads the [] operator and will contain the eigen values.

No size checking is performed. A is expected to be a square matrix of size VDimension. 'EigenValues' is expected to be of length VDimension. The matrix is not checked to see if it is symmetric.

Definition at line 770 of file itkSymmetricEigenAnalysis.h.

Referenced by itk::Functor::SymmetricEigenAnalysisFixedDimensionFunction< TMatrixDimension, TInputImage::PixelType, TOutputImage::PixelType >::operator()().

◆ ComputeEigenValuesAndVectors()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
unsigned int itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::ComputeEigenValuesAndVectors ( const TMatrix &  A,
TVector &  EigenValues,
TEigenMatrix &  EigenVectors 
) const
inline

Compute Eigen values and vectors of A A is any type that overloads the [][] operator and contains the symmetric matrix. In practice only the upper triangle of the matrix will be accessed. (Both itk::Matrix and vnl_matrix overload [][] operator.)

'EigenValues' is any type that overloads the [] operator and will contain the eigen values.

'EigenVectors' is any type that provides access to its elements with the [][] operator. It is expected be of size VDimension * VDimension.

No size checking is performed. A is expected to be a square matrix of size VDimension. 'EigenValues' is expected to be of length VDimension. The matrix is not checked to see if it is symmetric.

Each row of the matrix 'EigenVectors' represents an eigen vector. (unlike MATLAB where the columns of the [EigenVectors, EigenValues] = eig(A) contains the eigenvectors).

Definition at line 796 of file itkSymmetricEigenAnalysis.h.

◆ ComputeEigenValuesAndVectorsWithEigenLibraryImpl() [1/2]

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
template<typename QMatrix >
auto itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::ComputeEigenValuesAndVectorsWithEigenLibraryImpl ( const QMatrix &  A,
TVector &  EigenValues,
TEigenMatrix &  EigenVectors,
bool   
) const -> decltype(GetPointerToMatrixData(A), static_cast<unsigned int>(1))
inlineprivate

Definition at line 886 of file itkSymmetricEigenAnalysis.h.

◆ ComputeEigenValuesAndVectorsWithEigenLibraryImpl() [2/2]

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
template<typename QMatrix >
auto itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::ComputeEigenValuesAndVectorsWithEigenLibraryImpl ( const QMatrix &  A,
TVector &  EigenValues,
TEigenMatrix &  EigenVectors,
long   
) const -> decltype(static_cast<unsigned int>(1))
inlineprivate

Definition at line 944 of file itkSymmetricEigenAnalysis.h.

◆ ComputeEigenValuesWithEigenLibraryImpl() [1/2]

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
template<typename QMatrix >
auto itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::ComputeEigenValuesWithEigenLibraryImpl ( const QMatrix &  A,
TVector &  EigenValues,
bool   
) const -> decltype(GetPointerToMatrixData(A), static_cast<unsigned int>(1))
inlineprivate

Definition at line 1046 of file itkSymmetricEigenAnalysis.h.

◆ ComputeEigenValuesWithEigenLibraryImpl() [2/2]

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
template<typename QMatrix >
auto itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::ComputeEigenValuesWithEigenLibraryImpl ( const QMatrix &  A,
TVector &  EigenValues,
long   
) const -> decltype(static_cast<unsigned int>(1))
inlineprivate

Definition at line 1006 of file itkSymmetricEigenAnalysis.h.

◆ GetDimension()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
constexpr unsigned int itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetDimension ( ) const
inlineconstexpr

◆ GetMatrixValueType() [1/2]

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
template<typename QMatrix = TMatrix>
auto itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetMatrixValueType ( bool  ) const -> typename QMatrix::element_type
inlineprivate

Definition at line 864 of file itkSymmetricEigenAnalysis.h.

◆ GetMatrixValueType() [2/2]

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
template<typename QMatrix = TMatrix>
auto itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetMatrixValueType ( bool  ) const -> typename QMatrix::ValueType
inlineprivate

Definition at line 870 of file itkSymmetricEigenAnalysis.h.

◆ GetOrder()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
constexpr unsigned int itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetOrder ( ) const
inlineconstexpr

Definition at line 836 of file itkSymmetricEigenAnalysis.h.

Referenced by itk::operator<<().

◆ GetOrderEigenMagnitudes()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
bool itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetOrderEigenMagnitudes ( ) const
inline

Definition at line 831 of file itkSymmetricEigenAnalysis.h.

Referenced by itk::operator<<().

◆ GetOrderEigenValues()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
bool itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetOrderEigenValues ( ) const
inline

Definition at line 814 of file itkSymmetricEigenAnalysis.h.

Referenced by itk::operator<<().

◆ GetUseEigenLibrary()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
constexpr bool itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::GetUseEigenLibrary ( ) const
inlineconstexpr

Definition at line 846 of file itkSymmetricEigenAnalysis.h.

Referenced by itk::operator<<().

◆ SetOrderEigenMagnitudes()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
void itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::SetOrderEigenMagnitudes ( const bool  b)
inline

◆ SetOrderEigenValues()

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
void itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::SetOrderEigenValues ( const bool  b)
inline

Member Data Documentation

◆ m_OrderEigenValues

template<unsigned int VDimension, typename TMatrix, typename TVector, typename TEigenMatrix = TMatrix>
EigenValueOrderType itk::SymmetricEigenAnalysisFixedDimension< VDimension, TMatrix, TVector, TEigenMatrix >::m_OrderEigenValues
private

Definition at line 852 of file itkSymmetricEigenAnalysis.h.


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