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,
double *diagonalElements,
231 double *subDiagonalElements,
double *transformMatrix)
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()
unsigned int ComputeEigenValuesAndVectors(const TMatrix &A, TVector &EigenValues, TEigenMatrix &EigenVectors) const
unsigned int ComputeEigenValuesAndVectorsUsingQL(double *d, double *e, double *z) 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
void ReduceToTridiagonalMatrixAndGetTransformation(double *inputMatrix, double *diagonalElements, double *subDiagonalElements, double *transformMatrix) const
unsigned int ComputeEigenValuesUsingQL(double *d, double *e) const
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 ReduceToTridiagonalMatrix(double *inputMatrix, double *d, double *e, double *e2) const
void SetOrderEigenMagnitudes(const bool b)
unsigned int GetOrder() const
SymmetricEigenAnalysis(const unsigned int dimension)
void SetOrderEigenValues(const bool b)