40 #if defined(EigenDecomposition_RECURSES) 41 #error Recursive header files inclusion detected in EigenDecomposition.h 42 #else // defined(EigenDecomposition_RECURSES) 44 #define EigenDecomposition_RECURSES 46 #if !defined EigenDecomposition_h 48 #define EigenDecomposition_h 53 #include "DGtal/base/Common.h" 54 #include "DGtal/kernel/PointVector.h" 55 #include "DGtal/math/linalg/SimpleMatrix.h" 85 template <DGtal::Dimension TN,
typename TComponent,
typename TMatrix=SimpleMatrix<TComponent, TN, TN> >
151 static void decomposeQL( Matrix& V, Vector& d, Vector e );
165 static void getEigenDecomposition(
const Matrix& matrix, Matrix& eigenVectors, Vector& eigenValues );
187 #include "DGtal/math/linalg/EigenDecomposition.ih" 192 #endif // !defined EigenDecomposition_h 194 #undef EigenDecomposition_RECURSES 195 #endif // else defined(EigenDecomposition_RECURSES) static void tridiagonalize(Matrix &V, Vector &d, Vector &e)
Reduces a real symmetric matrix to a symmetric tridiagonal matrix using and accumulating orthogonal s...
DGtal::uint32_t Dimension
static const DGtal::Dimension N
Aim: This class provides methods to compute the eigen decomposition of a matrix. Its objective is to ...
static void decomposeQL(Matrix &V, Vector &d, Vector e)
finds the eigenvalues and eigenvectors of a symmetric tridiagonal matrix by the QL method...
static const DGtal::Dimension M
Aim: Implements basic operations that will be used in Point and Vector classes.
Aim: Defines the mathematical concept equivalent to a unitary commutative ring with a division operat...
static const DGtal::Dimension dimensionMinusOne
Static constant for dimension - 1.
Component Quantity
the type of scalar (i.e. Component)
ColumnVector Vector
an alias for column vectors (Nx1)
DGtal is the top-level namespace which contains all DGtal functions and types.
static const DGtal::Dimension dimension
Usual static constant for dimension.
TComponent Component
the type of each coefficient, i.e. scalar
TMatrix Matrix
the type for matrices (NxN)
PointVector< M, Component > ColumnVector
the type for column vectors (Nx1)
PointVector< N, Component > RowVector
the type for row vectors (1xN)
static void getEigenDecomposition(const Matrix &matrix, Matrix &eigenVectors, Vector &eigenValues)
Compute both eigen vectors and eigen values from an input matrix.
BOOST_CONCEPT_ASSERT((concepts::CEuclideanRing< TComponent >))
BOOST_STATIC_ASSERT(TN > 0)