|
| 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 > |
| 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) |
| |