Open CASCADE Technology 7.8.2.dev
math_DirectPolynomialRoots Class Reference

This class implements the calculation of all the real roots of a real polynomial of degree <= 4 using a direct method. Once found, the roots are polished using the Newton method. More...

#include <math_DirectPolynomialRoots.hxx>

Public Member Functions

 math_DirectPolynomialRoots (const Standard_Real A, const Standard_Real B, const Standard_Real C, const Standard_Real D, const Standard_Real E)
 computes all the real roots of the polynomial Ax4 + Bx3 + Cx2 + Dx + E using a direct method.
 
 math_DirectPolynomialRoots (const Standard_Real A, const Standard_Real B, const Standard_Real C, const Standard_Real D)
 computes all the real roots of the polynomial Ax3 + Bx2 + Cx + D using a direct method.
 
 math_DirectPolynomialRoots (const Standard_Real A, const Standard_Real B, const Standard_Real C)
 computes all the real roots of the polynomial Ax2 + Bx + C using a direct method.
 
 math_DirectPolynomialRoots (const Standard_Real A, const Standard_Real B)
 computes the real root of the polynomial Ax + B.
 
Standard_Boolean IsDone () const
 Returns true if the computations are successful, otherwise returns false.
 
Standard_Boolean InfiniteRoots () const
 Returns true if there is an infinity of roots, otherwise returns false.
 
Standard_Integer NbSolutions () const
 returns the number of solutions. An exception is raised if there are an infinity of roots.
 
Standard_Real Value (const Standard_Integer Nieme) const
 returns the value of the Nieme root. An exception is raised if there are an infinity of roots. Exception RangeError is raised if Nieme is < 1 or Nieme > NbSolutions.
 
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 Member Functions

void Solve (const Standard_Real A, const Standard_Real B, const Standard_Real C, const Standard_Real D, const Standard_Real E)
 
void Solve (const Standard_Real A, const Standard_Real B, const Standard_Real C, const Standard_Real D)
 
void Solve (const Standard_Real A, const Standard_Real B, const Standard_Real C)
 
void Solve (const Standard_Real A, const Standard_Real B)
 

Detailed Description

This class implements the calculation of all the real roots of a real polynomial of degree <= 4 using a direct method. Once found, the roots are polished using the Newton method.

Constructor & Destructor Documentation

◆ math_DirectPolynomialRoots() [1/4]

math_DirectPolynomialRoots::math_DirectPolynomialRoots ( const Standard_Real A,
const Standard_Real B,
const Standard_Real C,
const Standard_Real D,
const Standard_Real E )

computes all the real roots of the polynomial Ax4 + Bx3 + Cx2 + Dx + E using a direct method.

◆ math_DirectPolynomialRoots() [2/4]

math_DirectPolynomialRoots::math_DirectPolynomialRoots ( const Standard_Real A,
const Standard_Real B,
const Standard_Real C,
const Standard_Real D )

computes all the real roots of the polynomial Ax3 + Bx2 + Cx + D using a direct method.

◆ math_DirectPolynomialRoots() [3/4]

math_DirectPolynomialRoots::math_DirectPolynomialRoots ( const Standard_Real A,
const Standard_Real B,
const Standard_Real C )

computes all the real roots of the polynomial Ax2 + Bx + C using a direct method.

◆ math_DirectPolynomialRoots() [4/4]

math_DirectPolynomialRoots::math_DirectPolynomialRoots ( const Standard_Real A,
const Standard_Real B )

computes the real root of the polynomial Ax + B.

Member Function Documentation

◆ Dump()

void math_DirectPolynomialRoots::Dump ( Standard_OStream & o) const

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

◆ InfiniteRoots()

Standard_Boolean math_DirectPolynomialRoots::InfiniteRoots ( ) const

Returns true if there is an infinity of roots, otherwise returns false.

◆ IsDone()

Standard_Boolean math_DirectPolynomialRoots::IsDone ( ) const

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

◆ NbSolutions()

Standard_Integer math_DirectPolynomialRoots::NbSolutions ( ) const

returns the number of solutions. An exception is raised if there are an infinity of roots.

◆ Solve() [1/4]

void math_DirectPolynomialRoots::Solve ( const Standard_Real A,
const Standard_Real B )
protected

◆ Solve() [2/4]

void math_DirectPolynomialRoots::Solve ( const Standard_Real A,
const Standard_Real B,
const Standard_Real C )
protected

◆ Solve() [3/4]

void math_DirectPolynomialRoots::Solve ( const Standard_Real A,
const Standard_Real B,
const Standard_Real C,
const Standard_Real D )
protected

◆ Solve() [4/4]

void math_DirectPolynomialRoots::Solve ( const Standard_Real A,
const Standard_Real B,
const Standard_Real C,
const Standard_Real D,
const Standard_Real E )
protected

◆ Value()

Standard_Real math_DirectPolynomialRoots::Value ( const Standard_Integer Nieme) const

returns the value of the Nieme root. An exception is raised if there are an infinity of roots. Exception RangeError is raised if Nieme is < 1 or Nieme > NbSolutions.


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