DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
HardEigen.cpp File Reference

Implementations of the numerically-careful Eigen primitives declared in HardEigen.hpp (pseudoinverses, symmetric eigen decompositions, condition-number helpers). More...

#include "HardEigen.hpp"
#include <iostream>
Include dependency graph for HardEigen.cpp:

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::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::Eigen2x2RealSymEigenDecompositionGetCond (const Eigen::Matrix2d &A)
 2x2 analogue of Eigen3x3RealSymEigenDecompositionGetCond.
 
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).
 
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.
 
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.
 

Detailed Description

Implementations of the numerically-careful Eigen primitives declared in HardEigen.hpp (pseudoinverses, symmetric eigen decompositions, condition-number helpers).

Definition in file HardEigen.cpp.