# FoundationClasses
TKMath
math

# math_Householder Class Reference

This class implements the least square solution of a set of
linear equations of m unknowns (n >= m) using the Householder
method. It solves A.X = B.
This algorithm has more numerical stability than
GaussLeastSquare but is longer.
It must be used if the matrix is singular or nearly singular.
It is about 16% longer than GaussLeastSquare if there is only
one member B to solve.
It is about 30% longer if there are twenty B members to solve.
.

`#include <math_Householder.hxx>`

## Public Member Functions

void * | operator new (size_t, void *anAddress)
void * | operator new (size_t size)
void | operator delete (void *anAddress)
Standard_EXPORT | math_Householder (const math_Matrix &A, const math_Matrix &B, const Standard_Real EPS=1.0e-20)
| Given an input matrix A with n>= m, given an input matrix B this constructor performs the least square resolution of the set of linear equations A.X = B for each column of B. If a column norm is less than EPS, the resolution can't be done. Exception DimensionError is raised if the row number of B is different from the A row number. .
Standard_EXPORT | math_Householder (const math_Matrix &A, const math_Matrix &B, const Standard_Integer lowerArow, const Standard_Integer upperArow, const Standard_Integer lowerAcol, const Standard_Integer upperAcol, const Standard_Real EPS=1.0e-20)
| Given an input matrix A with n>= m, given an input matrix B this constructor performs the least square resolution of the set of linear equations A.X = B for each column of B. If a column norm is less than EPS, the resolution can't be done. Exception DimensionError is raised if the row number of B is different from the A row number. .
Standard_EXPORT | math_Householder (const math_Matrix &A, const math_Vector &B, const Standard_Real EPS=1.0e-20)
| Given an input matrix A with n>= m, given an input vector B this constructor performs the least square resolution of the set of linear equations A.X = B. If a column norm is less than EPS, the resolution can't be done. Exception DimensionError is raised if the length of B is different from the A row number. .
Standard_Boolean | IsDone () const
| Returns true if the computations are successful, otherwise returns false. .
void | Value (math_Vector &sol, const Standard_Integer Index=1) const
| Given the integer Index, this routine returns the corresponding least square solution sol. Exception NotDone is raised if the resolution has not be done. Exception OutOfRange is raised if Index <=0 or Index is more than the number of columns of B. .
const math_Matrix & | AllValues () const
| Returns the matrix sol of all the solutions of the system A.X = B. Exception NotDone is raised is the resolution has not be done. .
Standard_EXPORT void | Dump (Standard_OStream &o) const
| Prints informations on the current state of the object. .

## Protected Member Functions

Standard_EXPORT void | Perform (const math_Matrix &A, const math_Matrix &B, const Standard_Real EPS)
| This method is used internally for each constructor above and can't be used directly. .

## Private Attributes

math_Matrix | Sol
math_Matrix | Q
Standard_Boolean | Done
Standard_Integer | mylowerArow
Standard_Integer | myupperArow
Standard_Integer | mylowerAcol
Standard_Integer | myupperAcol

## Constructor & Destructor Documentation

Standard_EXPORT math_Householder::math_Householder | ( | const math_Matrix & | A,
|  | const math_Matrix & | B,
|  | const Standard_Real | EPS = `1.0e-20`
| ) |

Standard_EXPORT math_Householder::math_Householder | ( | const math_Matrix & | A,
|  | const math_Matrix & | B,
|  | const Standard_Integer | lowerArow,
|  | const Standard_Integer | upperArow,
|  | const Standard_Integer | lowerAcol,
|  | const Standard_Integer | upperAcol,
|  | const Standard_Real | EPS = `1.0e-20`
| ) |

Standard_EXPORT math_Householder::math_Householder | ( | const math_Matrix & | A,
|  | const math_Vector & | B,
|  | const Standard_Real | EPS = `1.0e-20`
| ) |

## Member Function Documentation

const math_Matrix & math_Householder::AllValues | ( |  | ) | const`[inline]`

Standard_EXPORT void math_Householder::Dump | ( | Standard_OStream & | o | ) | const

Standard_Boolean math_Householder::IsDone | ( |  | ) | const`[inline]`

void math_Householder::operator delete | ( | void * | anAddress | ) | `[inline]`

void* math_Householder::operator new | ( | size_t | size | ) | `[inline]`

void* math_Householder::operator new | ( | size_t | ,
|  | void * | anAddress
| ) | `[inline]`

Standard_EXPORT void math_Householder::Perform | ( | const math_Matrix & | A,
|  | const math_Matrix & | B,
|  | const Standard_Real | EPS
| ) | `[protected]`

void math_Householder::Value | ( | math_Vector & | sol,
|  | const Standard_Integer | Index = `1`
| ) | const`[inline]`

## Field Documentation

Standard_Boolean math_Householder::Done `[private]`

Standard_Integer math_Householder::mylowerAcol `[private]`

Standard_Integer math_Householder::mylowerArow `[private]`

Standard_Integer math_Householder::myupperAcol `[private]`

Standard_Integer math_Householder::myupperArow `[private]`

math_Matrix math_Householder::Q `[private]`

math_Matrix math_Householder::Sol `[private]`

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

- math_Householder.hxx
- math_Householder.lxx