|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
Robust linear-algebra primitives for small / moderately-sized Eigen matrices that are more numerically careful than Eigen's default paths. More...
#include "Defines.hpp"Go to the source code of this file.
Namespaces | |
| namespace | DNDS |
| the host side operators are provided as implemented | |
| namespace | DNDS::HardEigen |
Functions | |
| real | DNDS::HardEigen::EigenLeastSquareInverse (const Eigen::MatrixXd &A, Eigen::MatrixXd &AI, real svdTol=0) |
Moore-Penrose pseudoinverse via SVD, dropping singular values below svdTol (relative to the largest). Returns the largest / smallest ratio (condition number). | |
| real | DNDS::HardEigen::EigenLeastSquareInverse_Filtered (const Eigen::MatrixXd &A, Eigen::MatrixXd &AI, real svdTol=0, int mode=0) |
| Pseudoinverse with a choice of singular-value filter. | |
| Eigen::Index | DNDS::HardEigen::EigenLeastSquareSolve (const Eigen::MatrixXd &A, const Eigen::MatrixXd &B, Eigen::MatrixXd &AIB) |
Least-squares solve A * AIB ~= B via a rank-revealing QR-style decomposition; returns the computed rank of A. | |
| Eigen::Matrix3d | DNDS::HardEigen::Eigen3x3RealSymEigenDecomposition (const Eigen::Matrix3d &A) |
| Analytic eigen-decomposition of a 3x3 real symmetric matrix. Returns the eigenvector matrix (columns = eigenvectors, scaled so that diagonal == eigenvalues). | |
| Eigen::Matrix2d | DNDS::HardEigen::Eigen2x2RealSymEigenDecomposition (const Eigen::Matrix2d &A) |
| Analytic 2x2 analogue of Eigen3x3RealSymEigenDecomposition. | |
| real | DNDS::HardEigen::Eigen3x3RealSymEigenDecompositionGetCond (const Eigen::Matrix3d &A) |
| Condition number of a 3x3 SPD matrix from its eigenvalues. | |
| real | DNDS::HardEigen::Eigen3x3RealSymEigenDecompositionGetCond01 (const Eigen::Matrix3d &A) |
Like Eigen3x3RealSymEigenDecompositionGetCond but returns lambda0 / lambda1 only (ignores the smallest eigenvalue). | |
| real | DNDS::HardEigen::Eigen2x2RealSymEigenDecompositionGetCond (const Eigen::Matrix2d &A) |
| 2x2 analogue of Eigen3x3RealSymEigenDecompositionGetCond. | |
| Eigen::Matrix3d | DNDS::HardEigen::Eigen3x3RealSymEigenDecompositionNormalized (const Eigen::Matrix3d &A) |
| Eigen-decomposition with eigenvector columns normalised to unit length. | |
| Eigen::Matrix2d | DNDS::HardEigen::Eigen2x2RealSymEigenDecompositionNormalized (const Eigen::Matrix2d &A) |
| 2x2 analogue of Eigen3x3RealSymEigenDecompositionNormalized. | |
Robust linear-algebra primitives for small / moderately-sized Eigen matrices that are more numerically careful than Eigen's default paths.
These are used on the "hot" side of reconstruction / limiter code where matrices may be nearly rank-deficient and a plain A.inverse() or A.jacobiSvd().solve(b) would introduce large errors.
Definition in file HardEigen.hpp.