18 #ifndef __itkSymmetricEigenAnalysis_h
19 #define __itkSymmetricEigenAnalysis_h
60 template<
typename TMatrix,
typename TVector,
typename TEigenMatrix = TMatrix >
103 TVector & EigenValues)
const;
127 TVector & EigenValues,
128 TEigenMatrix & EigenVectors)
const;
206 double *
e,
double *e2)
const;
230 double *inputMatrix,
VectorType & diagonalElements,
231 double *subDiagonalElements,
double *transformMatrix)
const;
306 template<
typename TMatrix,
typename TVector,
typename TEigenMatrix >
310 os <<
"[ClassType: SymmetricEigenAnalysis]" << std::endl;
312 os <<
" Order : " << s.
GetOrder() << std::endl;
319 #ifndef ITK_MANUAL_INSTANTIATION
320 #include "itkSymmetricEigenAnalysis.hxx"
Find Eigen values of a real 2D symmetric matrix. It serves as a thread-safe alternative to the class:...
void ReduceToTridiagonalMatrix(double *inputMatrix, VectorType &d, double *e, double *e2) const
~SymmetricEigenAnalysis()
unsigned int ComputeEigenValuesAndVectors(const TMatrix &A, TVector &EigenValues, TEigenMatrix &EigenVectors) const
bool GetOrderEigenValues() const
EigenValueOrderType m_OrderEigenValues
std::ostream & operator<<(std::ostream &os, const Array< TValue > &arr)
void SetOrder(const unsigned int n)
static const double e
The base of the natural logarithm or Euler's number
unsigned int ComputeEigenValues(const TMatrix &A, TVector &EigenValues) const
unsigned int GetDimension() const
void SetDimension(const unsigned int n)
TEigenMatrix EigenMatrixType
bool GetOrderEigenMagnitudes() const
void SetOrderEigenMagnitudes(const bool b)
unsigned int ComputeEigenValuesAndVectorsUsingQL(VectorType &d, double *e, double *z) const
unsigned int GetOrder() const
unsigned int ComputeEigenValuesUsingQL(VectorType &d, double *e) const
void ReduceToTridiagonalMatrixAndGetTransformation(double *inputMatrix, VectorType &diagonalElements, double *subDiagonalElements, double *transformMatrix) const
SymmetricEigenAnalysis(const unsigned int dimension)
void SetOrderEigenValues(const bool b)