#include <SVDLinearSolver.h>
Linear system solver using the JacobiSVD decomposition of the Eigen library (http://eigen.tuxfamily.org/ , see also an excellent introduction in Numerical Recipes.) The Singular Value Decomposition is probably the most robust (and the slowest !) matrix factoring for linear equation solution. It works only for dense matrices (FullMatrix). The equation system Ax=b is solved using a decomposition of A=USV^T, where U is a nbyn unitary, V is a pbyp unitary, and S is a nbyp real positive matrix which is zero outside of its main diagonal; the diagonal entries of S are known as the singular values of A and the columns of U and V are known as the left and right singular vectors of A respectively. In case of indefinite matrix, there is at least one null singular value, and there is no solution to the equation system except for special righthand terms. The SVD solver solves the equation in the leastsquare sense: it finds the pseudosolution x which minimizes Axb. The condition number of the matrix is a byproduct of the solution, written in attribute "conditionNumber" by method solve (Matrix& M, Vector& x, Vector& b).
Public Attributes  
Data< bool >  f_verbose 
Dump system state at each iteration. More...  
Data< Real >  f_minSingularValue 
Thershold under which a singular value is set to 0, for the stabilization of illconditioned system. More...  
Data< Real >  f_conditionNumber 
Condition number of the matrix: ratio between the largest and smallest singular values. Computed in method solve. More...  
Public Member Functions  
SOFA_CLASS (SOFA_TEMPLATE2(SVDLinearSolver, TMatrix, TVector), SOFA_TEMPLATE2(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector))  
void  solve (Matrix &M, Vector &x, Vector &b) override 
Solve Mx=b. More...  
Protected Member Functions  
SVDLinearSolver ()  
Data<Real> sofa::component::linearsolver::SVDLinearSolver< TMatrix, TVector >::f_conditionNumber 
Condition number of the matrix: ratio between the largest and smallest singular values. Computed in method solve.
Data<Real> sofa::component::linearsolver::SVDLinearSolver< TMatrix, TVector >::f_minSingularValue 
Thershold under which a singular value is set to 0, for the stabilization of illconditioned system.
Data<bool> sofa::component::linearsolver::SVDLinearSolver< TMatrix, TVector >::f_verbose 
Dump system state at each iteration.

protected 
sofa::component::linearsolver::SVDLinearSolver< TMatrix, TVector >::SOFA_CLASS  (  SOFA_TEMPLATE2(SVDLinearSolver< TMatrix, TVector >, TMatrix, TVector)  , 
SOFA_TEMPLATE2(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector)  
) 

override 
Solve Mx=b.