Open CASCADE Technology
7.1.0.beta

SVD implements the solution of a set of N linear equations of M unknowns without condition on N or M. The Singular Value Decomposition algorithm is used. For singular or nearly singular matrices SVD is a better choice than Gauss or GaussLeastSquare. More...
#include <math_SVD.hxx>
Public Member Functions  
math_SVD (const math_Matrix &A)  
Given as input an n X m matrix A with n < m, n = m or n > m this constructor performs the Singular Value Decomposition. More...  
Standard_Boolean  IsDone () const 
Returns true if the computations are successful, otherwise returns false. More...  
void  Solve (const math_Vector &B, math_Vector &X, const Standard_Real Eps=1.0e6) const 
Given the input Vector B this routine solves the set of linear equations A . X = B. Exception NotDone is raised if the decomposition of A was not done successfully. Exception DimensionError is raised if the range of B is not equal to the rowrange of A. Exception DimensionError is raised if the range of X is not equal to the colrange of A. More...  
void  PseudoInverse (math_Matrix &Inv, const Standard_Real Eps=1.0e6) const 
Computes the inverse Inv of matrix A such as A * Inverse = Identity. Exceptions StdFail_NotDone if the algorithm fails (and IsDone returns false). Standard_DimensionError if the ranges of Inv are compatible with the ranges of A. More...  
void  Dump (Standard_OStream &o) const 
Prints information on the current state of the object. Is used to redefine the operator <<. More...  
SVD implements the solution of a set of N linear equations of M unknowns without condition on N or M. The Singular Value Decomposition algorithm is used. For singular or nearly singular matrices SVD is a better choice than Gauss or GaussLeastSquare.
math_SVD::math_SVD  (  const math_Matrix &  A  ) 
Given as input an n X m matrix A with n < m, n = m or n > m this constructor performs the Singular Value Decomposition.
void math_SVD::Dump  (  Standard_OStream &  o  )  const 
Prints information on the current state of the object. Is used to redefine the operator <<.
Standard_Boolean math_SVD::IsDone  (  )  const 
Returns true if the computations are successful, otherwise returns false.
void math_SVD::PseudoInverse  (  math_Matrix &  Inv, 
const Standard_Real  Eps = 1.0e6 

)  const 
Computes the inverse Inv of matrix A such as A * Inverse = Identity. Exceptions StdFail_NotDone if the algorithm fails (and IsDone returns false). Standard_DimensionError if the ranges of Inv are compatible with the ranges of A.
void math_SVD::Solve  (  const math_Vector &  B, 
math_Vector &  X,  
const Standard_Real  Eps = 1.0e6 

)  const 
Given the input Vector B this routine solves the set of linear equations A . X = B. Exception NotDone is raised if the decomposition of A was not done successfully. Exception DimensionError is raised if the range of B is not equal to the rowrange of A. Exception DimensionError is raised if the range of X is not equal to the colrange of A.