File indexing completed on 2026-09-09 09:16:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _math_TrigonometricEquationFunction_HeaderFile
0018 #define _math_TrigonometricEquationFunction_HeaderFile
0019
0020 #include <math_FunctionWithDerivative.hxx>
0021
0022
0023
0024
0025 class math_TrigonometricEquationFunction : public math_FunctionWithDerivative
0026 {
0027 Standard_Real myAA;
0028 Standard_Real myBB;
0029 Standard_Real myCC;
0030 Standard_Real myDD;
0031 Standard_Real myEE;
0032
0033 public:
0034 math_TrigonometricEquationFunction(const Standard_Real A,
0035 const Standard_Real B,
0036 const Standard_Real C,
0037 const Standard_Real D,
0038 const Standard_Real E)
0039 : myAA(A),
0040 myBB(B),
0041 myCC(C),
0042 myDD(D),
0043 myEE(E)
0044 {
0045 }
0046
0047 Standard_Boolean Value(const Standard_Real X, Standard_Real& F)
0048 {
0049 Standard_Real CN = cos(X), SN = sin(X);
0050
0051 F = CN * (myAA * CN + (myBB + myBB) * SN + myCC) + myDD * SN + myEE;
0052 return Standard_True;
0053 }
0054
0055 Standard_Boolean Derivative(const Standard_Real X, Standard_Real& D)
0056 {
0057 Standard_Real CN = Cos(X), SN = Sin(X);
0058
0059 D = -myAA * CN * SN + myBB * (CN * CN - SN * SN);
0060 D += D;
0061 D += -myCC * SN + myDD * CN;
0062 return Standard_True;
0063 }
0064
0065 Standard_Boolean Values(const Standard_Real X, Standard_Real& F, Standard_Real& D)
0066 {
0067 Standard_Real CN = Cos(X), SN = Sin(X);
0068
0069
0070 Standard_Real AACN = myAA * CN;
0071 Standard_Real BBSN = myBB * SN;
0072
0073 F = AACN * CN + BBSN * (CN + CN) + myCC * CN + myDD * SN + myEE;
0074 D = -AACN * SN + myBB * (CN * CN - SN * SN);
0075 D += D;
0076 D += -myCC * SN + myDD * CN;
0077 return Standard_True;
0078 }
0079 };
0080
0081 #endif