ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itk::Math::detail Namespace Reference

Typedefs

template<typename TReal>
using CholeskyRowMajor = Eigen::Matrix<TReal, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
 
template<typename TReal>
using CholeskyVector = Eigen::Matrix<TReal, Eigen::Dynamic, 1>
 

Functions

template<typename TReal>
void DynamicSquareSVDEigen (const TReal *inData, unsigned int n, TReal *uData, TReal *wData, TReal *vData)
 
template<unsigned int VRows, unsigned int VColumns, typename TReal>
void MatrixExponentialEigen (const TReal *inData, TReal *outData)
 
template<typename TReal>
void MatrixExponentialEigen (const TReal *inData, TReal *outData, unsigned int n)
 
template<typename TVector, typename TReal>
unsigned int NumericalRank (const TVector &W, TReal rcond)
 
template<typename TMatrix, typename TVector, typename TReal>
TMatrix PseudoInverse (const TMatrix &U, const TVector &W, const TMatrix &V, TReal rcond)
 
template<typename TMatrix, typename TVector, typename TReal>
TMatrix Recompose (const TMatrix &U, const TVector &W, const TMatrix &V, TReal rcond)
 
template<typename TReal>
void RectangularSVDEigen (const TReal *inData, unsigned int rows, unsigned int cols, TReal *uData, TReal *wData, TReal *vData)
 
template<typename TReal>
TReal ResolveRcond (TReal rcond, unsigned int n)
 
template<typename TMatrix, typename TVector, typename TReal>
TVector SolveLinear (const TMatrix &U, const TVector &W, const TMatrix &V, const TVector &b, TReal rcond)
 
template<unsigned int VDim, typename TReal>
void SquareSVDEigen (const TReal *inData, TReal *uData, TReal *wData, TReal *vData)
 

Variables

constexpr unsigned int kFixedSVDMaxDim = 16
 
constexpr unsigned int kJacobiMaxDim = 6
 

Detailed Description

Cholesky-based linear algebra for symmetric matrices, backed by Eigen.

Matrix exponential exp(A) for a real square matrix, backed by Eigen.

SolveSymmetricPositiveDefinite() uses Eigen's robust LDL^T (pivoted) factor, which handles near-semidefinite regularized Gram matrices. CholeskyLowerTriangle() returns the L of A = L L^T via Eigen's LLT.

Replacement for the removed vnl_matrix_exp. Delegates to Eigen's MatrixBase::exp(), which uses scaling-and-squaring with a degree-13 Pade approximant (Higham, SIAM J. Matrix Anal. Appl. 26(4), 2005) – more robust than the truncated Taylor series formerly provided by vnl_matrix_exp.

Typedef Documentation

◆ CholeskyRowMajor

template<typename TReal>
using itk::Math::detail::CholeskyRowMajor = Eigen::Matrix<TReal, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>

Definition at line 44 of file itkCholeskySolve.h.

◆ CholeskyVector

template<typename TReal>
using itk::Math::detail::CholeskyVector = Eigen::Matrix<TReal, Eigen::Dynamic, 1>

Definition at line 46 of file itkCholeskySolve.h.

Function Documentation

◆ DynamicSquareSVDEigen()

template<typename TReal>
void itk::Math::detail::DynamicSquareSVDEigen ( const TReal * inData,
unsigned int n,
TReal * uData,
TReal * wData,
TReal * vData )

Definition at line 214 of file itkMathSVD.h.

References kJacobiMaxDim.

Referenced by SquareSVDEigen(), and itk::Math::SVD().

◆ MatrixExponentialEigen() [1/2]

template<unsigned int VRows, unsigned int VColumns, typename TReal>
void itk::Math::detail::MatrixExponentialEigen ( const TReal * inData,
TReal * outData )

◆ MatrixExponentialEigen() [2/2]

template<typename TReal>
void itk::Math::detail::MatrixExponentialEigen ( const TReal * inData,
TReal * outData,
unsigned int n )

Definition at line 55 of file itkMatrixExponential.h.

◆ NumericalRank()

template<typename TVector, typename TReal>
unsigned int itk::Math::detail::NumericalRank ( const TVector & W,
TReal rcond )

Definition at line 87 of file itkMathSVD.h.

References ResolveRcond().

◆ PseudoInverse()

template<typename TMatrix, typename TVector, typename TReal>
TMatrix itk::Math::detail::PseudoInverse ( const TMatrix & U,
const TVector & W,
const TMatrix & V,
TReal rcond )

Definition at line 53 of file itkMathSVD.h.

References ResolveRcond().

◆ Recompose()

template<typename TMatrix, typename TVector, typename TReal>
TMatrix itk::Math::detail::Recompose ( const TMatrix & U,
const TVector & W,
const TMatrix & V,
TReal rcond )

Definition at line 106 of file itkMathSVD.h.

References ResolveRcond().

◆ RectangularSVDEigen()

template<typename TReal>
void itk::Math::detail::RectangularSVDEigen ( const TReal * inData,
unsigned int rows,
unsigned int cols,
TReal * uData,
TReal * wData,
TReal * vData )

Definition at line 289 of file itkMathSVD.h.

Referenced by itk::Math::SVD().

◆ ResolveRcond()

template<typename TReal>
TReal itk::Math::detail::ResolveRcond ( TReal rcond,
unsigned int n )

Definition at line 44 of file itkMathSVD.h.

Referenced by NumericalRank(), PseudoInverse(), Recompose(), and SolveLinear().

◆ SolveLinear()

template<typename TMatrix, typename TVector, typename TReal>
TVector itk::Math::detail::SolveLinear ( const TMatrix & U,
const TVector & W,
const TMatrix & V,
const TVector & b,
TReal rcond )

Definition at line 73 of file itkMathSVD.h.

References ResolveRcond().

◆ SquareSVDEigen()

template<unsigned int VDim, typename TReal>
void itk::Math::detail::SquareSVDEigen ( const TReal * inData,
TReal * uData,
TReal * wData,
TReal * vData )

Definition at line 251 of file itkMathSVD.h.

References DynamicSquareSVDEigen(), and kFixedSVDMaxDim.

Referenced by itk::Math::SVD().

Variable Documentation

◆ kFixedSVDMaxDim

unsigned int itk::Math::detail::kFixedSVDMaxDim = 16
constexpr

Definition at line 204 of file itkMathSVD.h.

Referenced by SquareSVDEigen().

◆ kJacobiMaxDim

unsigned int itk::Math::detail::kJacobiMaxDim = 6
constexpr

Definition at line 208 of file itkMathSVD.h.

Referenced by DynamicSquareSVDEigen().