ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkMathLDLT.h File Reference
#include "itkMacro.h"
#include "itkArray.h"
#include "itkArray2D.h"
#include "itkMatrix.h"
#include "itkVector.h"
#include "vnl/vnl_matrix.h"
#include "vnl/vnl_matrix_fixed.h"
#include "vnl/vnl_vector.h"
#include "vnl/vnl_vector_fixed.h"
#include "itk_eigen.h"
#include <ITK_EIGEN(Dense)>
#include <limits>
+ Include dependency graph for itkMathLDLT.h:

Go to the source code of this file.

Namespaces

namespace  itk
 
namespace  itk::Math
 
namespace  itk::Math::detail
 

Macros

#define ITK_MATH_HAS_SOLVE_SYMMETRIC   1
 

Functions

template<typename TReal>
Array2D< TReal > itk::Math::InverseSymmetric (const Array2D< TReal > &A)
 
template<typename TReal>
vnl_matrix< TReal > itk::Math::InverseSymmetric (const vnl_matrix< TReal > &A)
 
template<typename TReal>
void itk::Math::detail::InverseSymmetricLDLTEigen (const TReal *aData, unsigned int n, TReal *invData)
 
template<typename TReal>
Array2D< TReal > itk::Math::SolveSymmetric (const Array2D< TReal > &A, const Array2D< TReal > &B)
 
template<typename TReal>
Array< TReal > itk::Math::SolveSymmetric (const Array2D< TReal > &A, const Array< TReal > &b)
 
template<typename TReal, unsigned int VDim>
Vector< TReal, VDim > itk::Math::SolveSymmetric (const Matrix< TReal, VDim, VDim > &A, const Vector< TReal, VDim > &b)
 
template<typename TReal>
vnl_matrix< TReal > itk::Math::SolveSymmetric (const vnl_matrix< TReal > &A, const vnl_matrix< TReal > &B)
 
template<typename TReal>
vnl_vector< TReal > itk::Math::SolveSymmetric (const vnl_matrix< TReal > &A, const vnl_vector< TReal > &b)
 
template<typename TReal, unsigned int VDim>
vnl_vector_fixed< TReal, VDim > itk::Math::SolveSymmetric (const vnl_matrix_fixed< TReal, VDim, VDim > &A, const vnl_vector_fixed< TReal, VDim > &b)
 
template<typename TReal>
void itk::Math::detail::SolveSymmetricLDLTEigen (const TReal *aData, const TReal *bData, unsigned int n, TReal *xData)
 
template<typename TReal>
void itk::Math::detail::SolveSymmetricMatrixLDLTEigen (const TReal *aData, const TReal *bData, unsigned int n, unsigned int m, TReal *xData)
 

Macro Definition Documentation

◆ ITK_MATH_HAS_SOLVE_SYMMETRIC

#define ITK_MATH_HAS_SOLVE_SYMMETRIC   1

Capability macro. Downstream code selects the Eigen-backed symmetric solve with, e.g.:

#if __has_include(<itkMathLDLT.h>)
# include <itkMathLDLT.h>
#endif
#ifdef ITK_MATH_HAS_SOLVE_SYMMETRIC
x = itk::Math::SolveSymmetric(A, b); // itk::Array2D, itk::Array
#else
x = vnl_cholesky(A.as_ref()).solve(b); // legacy vnl fallback
#endif
Array< TReal > SolveSymmetric(const Array2D< TReal > &A, const Array< TReal > &b)
Solve the symmetric linear system A x = b via LDLT, backed by Eigen.

Definition at line 49 of file itkMathLDLT.h.