Open CASCADE Technology 7.8.2.dev
math_Gauss Class Reference

This class implements the Gauss LU decomposition (Crout algorithm) with partial pivoting (rows interchange) of a square matrix and the different possible derived calculation : More...

#include <math_Gauss.hxx>

Public Member Functions

 math_Gauss (const math_Matrix &A, const Standard_Real MinPivot=1.0e-20, const Message_ProgressRange &theProgress=Message_ProgressRange())
 Given an input n X n matrix A this constructor performs its LU decomposition with partial pivoting (interchange of rows). This LU decomposition is stored internally and may be used to do subsequent calculation. If the largest pivot found is less than MinPivot the matrix A is considered as singular. Exception NotSquare is raised if A is not a square matrix.
 
Standard_Boolean IsDone () const
 Returns true if the computations are successful, otherwise returns false.
 
void Solve (const math_Vector &B, math_Vector &X) const
 Given the input Vector B this routine returns the solution X of 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 number of rows of A.
 
void Solve (math_Vector &B) const
 Given the input Vector B this routine solves the set of linear equations A . X = B. B is replaced by the vector solution X. 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 number of rows of A.
 
Standard_Real Determinant () const
 This routine returns the value of the determinant of the previously LU decomposed matrix A. Exception NotDone may be raised if the decomposition of A was not done successfully, zero is returned if the matrix A was considered as singular.
 
void Invert (math_Matrix &Inv) const
 This routine outputs Inv the inverse of the previously LU decomposed matrix A. Exception DimensionError is raised if the ranges of B are not equal to the ranges of A.
 
void Dump (Standard_OStream &o) const
 Prints on the stream o information on the current state of the object. Is used to redefine the operator <<.
 

Protected Attributes

math_Matrix LU
 
math_IntegerVector Index
 
Standard_Real D
 
Standard_Boolean Done
 

Detailed Description

This class implements the Gauss LU decomposition (Crout algorithm) with partial pivoting (rows interchange) of a square matrix and the different possible derived calculation :

  • solution of a set of linear equations.
  • inverse of a matrix.
  • determinant of a matrix.

Constructor & Destructor Documentation

◆ math_Gauss()

math_Gauss::math_Gauss ( const math_Matrix & A,
const Standard_Real MinPivot = 1.0e-20,
const Message_ProgressRange & theProgress = Message_ProgressRange() )

Given an input n X n matrix A this constructor performs its LU decomposition with partial pivoting (interchange of rows). This LU decomposition is stored internally and may be used to do subsequent calculation. If the largest pivot found is less than MinPivot the matrix A is considered as singular. Exception NotSquare is raised if A is not a square matrix.

Member Function Documentation

◆ Determinant()

Standard_Real math_Gauss::Determinant ( ) const

This routine returns the value of the determinant of the previously LU decomposed matrix A. Exception NotDone may be raised if the decomposition of A was not done successfully, zero is returned if the matrix A was considered as singular.

◆ Dump()

void math_Gauss::Dump ( Standard_OStream & o) const

Prints on the stream o information on the current state of the object. Is used to redefine the operator <<.

◆ Invert()

void math_Gauss::Invert ( math_Matrix & Inv) const

This routine outputs Inv the inverse of the previously LU decomposed matrix A. Exception DimensionError is raised if the ranges of B are not equal to the ranges of A.

◆ IsDone()

Standard_Boolean math_Gauss::IsDone ( ) const
inline

Returns true if the computations are successful, otherwise returns false.

◆ Solve() [1/2]

void math_Gauss::Solve ( const math_Vector & B,
math_Vector & X ) const

Given the input Vector B this routine returns the solution X of 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 number of rows of A.

◆ Solve() [2/2]

void math_Gauss::Solve ( math_Vector & B) const

Given the input Vector B this routine solves the set of linear equations A . X = B. B is replaced by the vector solution X. 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 number of rows of A.

Field Documentation

◆ D

Standard_Real math_Gauss::D
protected

◆ Done

Standard_Boolean math_Gauss::Done
protected

◆ Index

math_IntegerVector math_Gauss::Index
protected

◆ LU

math_Matrix math_Gauss::LU
protected

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