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

Functions

template<typename TMatrixU, typename TMatrixV>
void CanonicalizeColumnSignsPaired (TMatrixU &u, TMatrixV &paired)
 
template<typename T>
void CanonicalizeEigenvectorColumnSigns (vnl_matrix< T > &V)
 
const char * EigenComputationInfoString (Eigen::ComputationInfo info)
 

Function Documentation

◆ CanonicalizeColumnSignsPaired()

template<typename TMatrixU, typename TMatrixV>
void itk::bridge::detail::CanonicalizeColumnSignsPaired ( TMatrixU & u,
TMatrixV & paired )

Same canonicalization as CanonicalizeEigenvectorColumnSigns, applied to u, with the identical per-column flip mirrored onto paired so a factor pair (e.g. the U and V of an SVD) stays consistent. Templated on the matrix types so it serves vnl_matrix and vnl_matrix_fixed, including pairs of distinct fixed types (a rectangular SVD's U and V); the sign is well-defined only when the leading per-column magnitude is unambiguous (distinct singular values).

Definition at line 63 of file itkBridgeEigenDecompositionSignConvention.h.

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

◆ CanonicalizeEigenvectorColumnSigns()

template<typename T>
void itk::bridge::detail::CanonicalizeEigenvectorColumnSigns ( vnl_matrix< T > & V)

Canonicalize the sign of every eigenvector column of V so that its largest-magnitude entry is positive (tie-break by lowest row index). An eigenvector's sign is mathematically arbitrary and otherwise depends on solver internals and SIMD width; pinning it this way makes a real-valued eigendecomposition bit-reproducible across platforms.

Definition at line 34 of file itkBridgeEigenDecompositionSignConvention.h.

Referenced by itk::bridge::GeneralizedEigenDecomposition< TReal >::GeneralizedEigenDecomposition(), and itk::bridge::SymmetricEigenDecomposition< T >::SymmetricEigenDecomposition().

◆ EigenComputationInfoString()

const char * itk::bridge::detail::EigenComputationInfoString ( Eigen::ComputationInfo info)
inline

Human-readable name and likely cause for an Eigen solver status, so a thrown decomposition error names the failure mode instead of a raw code.

Definition at line 30 of file itkBridgeEigenDecompositionSolverInfo.h.

Referenced by itk::bridge::GeneralizedEigenDecomposition< TReal >::GeneralizedEigenDecomposition(), itk::bridge::RealEigenDecomposition< TReal >::RealEigenDecomposition(), and itk::bridge::SymmetricEigenDecomposition< T >::SymmetricEigenDecomposition().