Open CASCADE Technology
6.9.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: More...
#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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | D0 (const Standard_Real U, TColStd_Array1OfReal &BasisValue) |
Compute the values of the basis functions in u. More... | |
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. More... | |
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. More... | |
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. More... | |
Standard_Integer | WorkDegree () const |
returns WorkDegree More... | |
Standard_Integer | NivConstr () const |
returns NivConstr More... | |
Public Member Functions inherited from MMgt_TShared | |
virtual void | Delete () const |
Memory deallocator for transient classes. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. More... | |
virtual | ~Standard_Transient () |
Destructor must be virtual. More... | |
virtual const Handle_Standard_Type & | DynamicType () const |
Returns a type information object about this object. More... | |
Standard_Boolean | IsInstance (const Handle_Standard_Type &theType) const |
Returns a true value if this is an instance of Type. More... | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. More... | |
Standard_Boolean | IsKind (const Handle_Standard_Type &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
virtual Handle_Standard_Transient | This () const |
Returns a Handle which references this object. Must never be called to objects created in stack. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
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
PLib_HermitJacobi::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 PLib_HermitJacobi::AverageError | ( | const Standard_Integer | Dimension, |
Standard_Real & | HermJacCoeff, | ||
const Standard_Integer | NewDegree | ||
) | const |
|
virtual |
Compute the values of the basis functions in u.
Implements PLib_Base.
|
virtual |
Compute the values and the derivatives values of the basis functions in u.
Implements PLib_Base.
|
virtual |
Compute the values and the derivatives values of the basis functions in u.
Implements PLib_Base.
|
virtual |
Compute the values and the derivatives values of the basis functions in u.
Implements PLib_Base.
Standard_Real PLib_HermitJacobi::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.
Standard_Integer PLib_HermitJacobi::NivConstr | ( | ) | const |
returns NivConstr
|
virtual |
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.
Implements PLib_Base.
|
virtual |
Convert the polynomial P(t) = H(t) + W(t) Q(t) in the canonical base.
Implements PLib_Base.
|
virtual |
returns WorkDegree
Implements PLib_Base.