Open CASCADE Technology 6.6.0
|
This class provides method to work with Jacobi Polynomials
relativly to an order of constraint
q = myWorkDegree-2*(myNivConstr+1)
Jk(t) for k=0,q compose the Jacobi Polynomial base relativly to the weigth W(t)
iorder is the integer value for the constraints:
iorder = 0 <=> ConstraintOrder = GeomAbs_C0
iorder = 1 <=> ConstraintOrder = GeomAbs_C1
iorder = 2 <=> ConstraintOrder = GeomAbs_C2
P(t) = H(t) + W(t) * Q(t) Where W(t) = (1-t**2)**(2*iordre+2)
the coefficients JacCoeff represents P(t) JacCoeff are stored as follow:
c0(1) c0(2) .... c0(Dimension)
c1(1) c1(2) .... c1(Dimension)
cDegree(1) cDegree(2) .... cDegree(Dimension)
The coefficients
c0(1) c0(2) .... c0(Dimension)
c2*ordre+1(1) ... c2*ordre+1(dimension)
represents the part of the polynomial in the
Hermit's base: H(t)
H(t) = c0H00(t) + c1H01(t) + ...c(iordre)H(0 ;iorder)+ c(iordre+1)H10(t)+...
The following coefficients represents the part of the
polynomial in the Jacobi base ie Q(t)
Q(t) = c2*iordre+2 J0(t) + ...+ cDegree JDegree-2*iordre-2
#include <PLib_HermitJacobi.hxx>
Public Member Functions | |
PLib_HermitJacobi (const Standard_Integer WorkDegree, const GeomAbs_Shape ConstraintOrder) | |
Initialize the polynomial class Degree has to be <= 30 ConstraintOrder has to be GeomAbs_C0 GeomAbs_C1 GeomAbs_C2 | |
Standard_Real | MaxError (const Standard_Integer Dimension, Standard_Real &HermJacCoeff, const Standard_Integer NewDegree) const |
This method computes the maximum error on the polynomial W(t) Q(t) obtained by missing the coefficients of JacCoeff from NewDegree +1 to Degree | |
void | ReduceDegree (const Standard_Integer Dimension, const Standard_Integer MaxDegree, const Standard_Real Tol, Standard_Real &HermJacCoeff, Standard_Integer &NewDegree, Standard_Real &MaxError) const |
Compute NewDegree <= MaxDegree so that MaxError is lower than Tol. MaxError can be greater than Tol if it is not possible to find a NewDegree <= MaxDegree. In this case NewDegree = MaxDegree | |
Standard_Real | AverageError (const Standard_Integer Dimension, Standard_Real &HermJacCoeff, const Standard_Integer NewDegree) const |
void | ToCoefficients (const Standard_Integer Dimension, const Standard_Integer Degree, const TColStd_Array1OfReal &HermJacCoeff, TColStd_Array1OfReal &Coefficients) const |
Convert the polynomial P(t) = H(t) + W(t) Q(t) in the canonical base. | |
void | D0 (const Standard_Real U, TColStd_Array1OfReal &BasisValue) |
Compute the values of the basis functions in u | |
void | D1 (const Standard_Real U, TColStd_Array1OfReal &BasisValue, TColStd_Array1OfReal &BasisD1) |
Compute the values and the derivatives values of the basis functions in u | |
void | D2 (const Standard_Real U, TColStd_Array1OfReal &BasisValue, TColStd_Array1OfReal &BasisD1, TColStd_Array1OfReal &BasisD2) |
Compute the values and the derivatives values of the basis functions in u | |
void | D3 (const Standard_Real U, TColStd_Array1OfReal &BasisValue, TColStd_Array1OfReal &BasisD1, TColStd_Array1OfReal &BasisD2, TColStd_Array1OfReal &BasisD3) |
Compute the values and the derivatives values of the basis functions in u | |
Standard_Integer | WorkDegree () const |
returns WorkDegree | |
Standard_Integer | NivConstr () const |
returns NivConstr |
PLib_HermitJacobi::PLib_HermitJacobi | ( | const Standard_Integer | WorkDegree, |
const GeomAbs_Shape | ConstraintOrder | ||
) |
Standard_Real PLib_HermitJacobi::AverageError | ( | const Standard_Integer | Dimension, |
Standard_Real & | HermJacCoeff, | ||
const Standard_Integer | NewDegree | ||
) | const |
void PLib_HermitJacobi::D0 | ( | const Standard_Real | U, |
TColStd_Array1OfReal & | BasisValue | ||
) | [virtual] |
Implements PLib_Base.
void PLib_HermitJacobi::D1 | ( | const Standard_Real | U, |
TColStd_Array1OfReal & | BasisValue, | ||
TColStd_Array1OfReal & | BasisD1 | ||
) | [virtual] |
Implements PLib_Base.
void PLib_HermitJacobi::D2 | ( | const Standard_Real | U, |
TColStd_Array1OfReal & | BasisValue, | ||
TColStd_Array1OfReal & | BasisD1, | ||
TColStd_Array1OfReal & | BasisD2 | ||
) | [virtual] |
Implements PLib_Base.
void PLib_HermitJacobi::D3 | ( | const Standard_Real | U, |
TColStd_Array1OfReal & | BasisValue, | ||
TColStd_Array1OfReal & | BasisD1, | ||
TColStd_Array1OfReal & | BasisD2, | ||
TColStd_Array1OfReal & | BasisD3 | ||
) | [virtual] |
Implements PLib_Base.
Standard_Real PLib_HermitJacobi::MaxError | ( | const Standard_Integer | Dimension, |
Standard_Real & | HermJacCoeff, | ||
const Standard_Integer | NewDegree | ||
) | const |
Standard_Integer PLib_HermitJacobi::NivConstr | ( | ) | const |
void PLib_HermitJacobi::ReduceDegree | ( | const Standard_Integer | Dimension, |
const Standard_Integer | MaxDegree, | ||
const Standard_Real | Tol, | ||
Standard_Real & | HermJacCoeff, | ||
Standard_Integer & | NewDegree, | ||
Standard_Real & | MaxError | ||
) | const [virtual] |
Implements PLib_Base.
void PLib_HermitJacobi::ToCoefficients | ( | const Standard_Integer | Dimension, |
const Standard_Integer | Degree, | ||
const TColStd_Array1OfReal & | HermJacCoeff, | ||
TColStd_Array1OfReal & | Coefficients | ||
) | const [virtual] |
Implements PLib_Base.
Standard_Integer PLib_HermitJacobi::WorkDegree | ( | ) | const [virtual] |
Implements PLib_Base.