UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ImplicitQRSVD.h File Reference

Go to the source code of this file.

Classes

class  Chaos::GivensRotation< T >
 

Namespaces

namespace  Chaos
 

Functions

template<class T >
void Chaos::ZeroChase (PMatrix< T, 3, 3 > &H, PMatrix< T, 3, 3 > &U, PMatrix< T, 3, 3 > &V)
 zero chasing the 3X3 matrix to bidiagonal form original form of H: x x 0 x x x 0 0 x after zero chase: x x 0 0 x x 0 0 x
 
template<class T >
void Chaos::MakeUpperBidiag (PMatrix< T, 3, 3 > &H, PMatrix< T, 3, 3 > &U, PMatrix< T, 3, 3 > &V)
 make a 3X3 matrix to upper bidiagonal form original form of H: x x x x x x x x x after zero chase: x x 0 0 x x 0 0 x
 
template<class T >
void Chaos::MakeLambdaShape (PMatrix< T, 3, 3 > &H, PMatrix< T, 3, 3 > &U, PMatrix< T, 3, 3 > &V)
 make a 3X3 matrix to lambda shape original form of H: x x x x x x x x x after : x 0 0 x x 0 x 0 x
 
template<class T >
void Chaos::PolarDecomposition (const PMatrix< T, 2, 2 > &A, GivensRotation< T > &R, PMatrix< T, 2, 2 > &S_Sym)
 2x2 polar decomposition.
 
template<class T >
void Chaos::PolarDecomposition (const PMatrix< T, 2, 2 > &A, PMatrix< T, 2, 2 > &R, PMatrix< T, 2, 2 > &S_Sym)
 2x2 polar decomposition.
 
template<class T >
void Chaos::SingularValueDecomposition (const PMatrix< T, 2, 2 > &A, GivensRotation< T > &U, const TVector< T, 2 > &Sigma, GivensRotation< T > &V, const T tol=std::numeric_limits< T >::epsilon())
 2x2 SVD (singular value decomposition) A=USV'
 
template<class T >
void Chaos::SingularValueDecomposition (const PMatrix< T, 2, 2 > &A, const PMatrix< T, 2, 2 > &U, const TVector< T, 2 > &Sigma, const PMatrix< T, 2, 2 > &V, const T tol=std::numeric_limits< T >::epsilon())
 2x2 SVD (singular value decomposition) A=USV'
 
template<class T >
Chaos::WilkinsonShift (const T a1, const T b1, const T a2)
 Compute WilkinsonShift of the block a1 b1 b1 a2 based on the WilkinsonShift formula mu = c + d - sign (d) \ sqrt (d*d + b*b), where d = (a-c)/2.
 
template<int t, class T >
void Chaos::Process (PMatrix< T, 3, 3 > &B, PMatrix< T, 3, 3 > &U, TVector< T, 3 > &sigma, PMatrix< T, 3, 3 > &V)
 Helper function of 3X3 SVD for Processing 2X2 SVD.
 
template<class T >
void Chaos::FlipSign (int i, PMatrix< T, 3, 3 > &U, TVector< T, 3 > &sigma)
 Helper function of 3X3 SVD for flipping signs due to flipping signs of sigma.
 
template<class T >
void Chaos::SwapCols (PMatrix< T, 3, 3 > &A, const int i1, const int i2)
 
template<class T >
void Chaos::Sort0 (PMatrix< T, 3, 3 > &U, TVector< T, 3 > &sigma, PMatrix< T, 3, 3 > &V)
 Helper function of 3X3 SVD for sorting singular values.
 
template<class T >
void Chaos::Sort1 (PMatrix< T, 3, 3 > &U, TVector< T, 3 > &sigma, PMatrix< T, 3, 3 > &V)
 Helper function of 3X3 SVD for Sorting singular values.
 
template<class T >
int Chaos::SingularValueDecomposition (const PMatrix< T, 3, 3 > &A, PMatrix< T, 3, 3 > &U, TVector< T, 3 > &sigma, PMatrix< T, 3, 3 > &V, T tol=std::numeric_limits< T >::epsilon())
 3X3 SVD (singular value decomposition) A=USV'
 
template<class T >
void Chaos::PolarDecomposition (const PMatrix< T, 3, 3 > &A, PMatrix< T, 3, 3 > &R, PMatrix< T, 3, 3 > &S_Sym)
 3X3 polar decomposition.
 
template<class T >
void Chaos::dRdFCorotated (const PMatrix< T, 3, 3 > &F, TVector< T, 81 > &dRdF)