18 #ifndef itkSymmetricEigenAnalysis_h
19 #define itkSymmetricEigenAnalysis_h
60 template<
typename TMatrix,
typename TVector,
typename TEigenMatrix = TMatrix >
75 m_OrderEigenValues(OrderByValue) {}
78 m_Dimension(dimension),
80 m_OrderEigenValues(OrderByValue) {}
101 unsigned int ComputeEigenValues(
103 TVector & EigenValues)
const;
125 unsigned int ComputeEigenValuesAndVectors(
127 TVector & EigenValues,
128 TEigenMatrix & EigenVectors)
const;
146 if ( b ) { m_OrderEigenValues = OrderByValue; }
147 else { m_OrderEigenValues = DoNotOrder; }
158 if ( b ) { m_OrderEigenValues = OrderByMagnitude; }
159 else { m_OrderEigenValues = DoNotOrder; }
172 m_Order = m_Dimension;
205 void ReduceToTridiagonalMatrix(
double *inputMatrix,
double *d,
206 double *
e,
double *e2)
const;
229 void ReduceToTridiagonalMatrixAndGetTransformation(
230 double *inputMatrix,
double *diagonalElements,
231 double *subDiagonalElements,
double *transformMatrix)
const;
262 unsigned int ComputeEigenValuesUsingQL(
double *d,
double *
e)
const;
301 unsigned int ComputeEigenValuesAndVectorsUsingQL(
double *d,
double *
e,
double *z)
const;
304 template<
typename TMatrix,
typename TVector,
typename TEigenMatrix >
308 os <<
"[ClassType: SymmetricEigenAnalysis]" << std::endl;
310 os <<
" Order : " << s.
GetOrder() << std::endl;
317 #ifndef ITK_MANUAL_INSTANTIATION
318 #include "itkSymmetricEigenAnalysis.hxx"
Find Eigen values of a real 2D symmetric matrix. It serves as a thread-safe alternative to the class:...
~SymmetricEigenAnalysis()
bool GetOrderEigenValues() const
EigenValueOrderType m_OrderEigenValues
std::ostream & operator<<(std::ostream &os, const Array< TValue > &arr)
void SetOrder(const unsigned int n)
unsigned int GetDimension() const
void SetDimension(const unsigned int n)
TEigenMatrix EigenMatrixType
bool GetOrderEigenMagnitudes() const
void SetOrderEigenMagnitudes(const bool b)
unsigned int GetOrder() const
static ITK_CONSTEXPR_VAR double e
The base of the natural logarithm or Euler's number
SymmetricEigenAnalysis(const unsigned int dimension)
void SetOrderEigenValues(const bool b)