# math_SVD Class Reference

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.0e-6) 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.0e-6) 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...

## Detailed Description

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.

## Constructor & Destructor Documentation

 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.

## Member Function Documentation

 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.0e-6` ) 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.0e-6` ) 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.

The documentation for this class was generated from the following file: