DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::HardEigen Namespace Reference

Functions

real 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 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 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 Eigen2x2RealSymEigenDecomposition (const Eigen::Matrix2d &A)
 Analytic 2x2 analogue of Eigen3x3RealSymEigenDecomposition.
 
real Eigen2x2RealSymEigenDecompositionGetCond (const Eigen::Matrix2d &A)
 2x2 analogue of Eigen3x3RealSymEigenDecompositionGetCond.
 
real Eigen3x3RealSymEigenDecompositionGetCond (const Eigen::Matrix3d &A)
 Condition number of a 3x3 SPD matrix from its eigenvalues.
 
real Eigen3x3RealSymEigenDecompositionGetCond01 (const Eigen::Matrix3d &A)
 Like Eigen3x3RealSymEigenDecompositionGetCond but returns lambda0 / lambda1 only (ignores the smallest eigenvalue).
 
Eigen::Matrix3d Eigen3x3RealSymEigenDecompositionNormalized (const Eigen::Matrix3d &A)
 Eigen-decomposition with eigenvector columns normalised to unit length.
 
Eigen::Matrix2d Eigen2x2RealSymEigenDecompositionNormalized (const Eigen::Matrix2d &A)
 2x2 analogue of Eigen3x3RealSymEigenDecompositionNormalized.
 
Eigen::Index 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.
 

Function Documentation

◆ Eigen2x2RealSymEigenDecomposition()

Eigen::Matrix2d DNDS::HardEigen::Eigen2x2RealSymEigenDecomposition ( const Eigen::Matrix2d &  A)

Analytic 2x2 analogue of Eigen3x3RealSymEigenDecomposition.

Definition at line 88 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ Eigen2x2RealSymEigenDecompositionGetCond()

real DNDS::HardEigen::Eigen2x2RealSymEigenDecompositionGetCond ( const Eigen::Matrix2d &  A)

2x2 analogue of Eigen3x3RealSymEigenDecompositionGetCond.

Definition at line 104 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ Eigen2x2RealSymEigenDecompositionNormalized()

Eigen::Matrix2d DNDS::HardEigen::Eigen2x2RealSymEigenDecompositionNormalized ( const Eigen::Matrix2d &  A)

2x2 analogue of Eigen3x3RealSymEigenDecompositionNormalized.

Definition at line 145 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ Eigen3x3RealSymEigenDecomposition()

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

Definition at line 72 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ Eigen3x3RealSymEigenDecompositionGetCond()

real DNDS::HardEigen::Eigen3x3RealSymEigenDecompositionGetCond ( const Eigen::Matrix3d &  A)

Condition number of a 3x3 SPD matrix from its eigenvalues.

Definition at line 112 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ Eigen3x3RealSymEigenDecompositionGetCond01()

real DNDS::HardEigen::Eigen3x3RealSymEigenDecompositionGetCond01 ( const Eigen::Matrix3d &  A)

Like Eigen3x3RealSymEigenDecompositionGetCond but returns lambda0 / lambda1 only (ignores the smallest eigenvalue).

Definition at line 120 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ Eigen3x3RealSymEigenDecompositionNormalized()

Eigen::Matrix3d DNDS::HardEigen::Eigen3x3RealSymEigenDecompositionNormalized ( const Eigen::Matrix3d &  A)

Eigen-decomposition with eigenvector columns normalised to unit length.

Definition at line 129 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ EigenLeastSquareInverse()

real DNDS::HardEigen::EigenLeastSquareInverse ( const Eigen::MatrixXd &  A,
Eigen::MatrixXd &  AI,
real  svdTol 
)

Moore-Penrose pseudoinverse via SVD, dropping singular values below svdTol (relative to the largest). Returns the largest / smallest ratio (condition number).

Todo:
test these eigen solvers !!

Definition at line 13 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ EigenLeastSquareInverse_Filtered()

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.

Parameters
AInput matrix.
AIOutput pseudoinverse.
svdTolFilter tolerance (relative to the largest singular value).
modeFilter selection:
  • 0: standard "lsqminnorm" – drop smallest singular values below the tolerance (stabilises rank-deficient systems);
  • 1: drop largest singular values above 1/svdTol relative to the smallest (inverse filtering, rarely needed).
Returns
Condition number of A (ratio of largest to smallest post-filter singular value).

note this filtering!

note this filtering!

Definition at line 25 of file HardEigen.cpp.

Here is the caller graph for this function:

◆ EigenLeastSquareSolve()

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.

Definition at line 160 of file HardEigen.cpp.

Here is the caller graph for this function: