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