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.
PointVector< M, Component > ColumnVector
static const DGtal::Dimension dimensionMinusOne
static const DGtal::Dimension N
PointVector< N, Component > RowVector
static void tridiagonalize(Matrix &V, Vector &d, Vector &e)
Reduces a real symmetric matrix to a symmetric tridiagonal matrix using and accumulating orthogonal s...
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
SimpleMatrix< Scalar, TN, TN > Matrix
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...