\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(J \cdot \left(\frac{1}{3} \cdot {\ell}^{3} + \left(\frac{1}{60} \cdot {\ell}^{5} + 2 \cdot \ell\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + Udouble f(double J, double l, double K, double U) {
double r239046 = J;
double r239047 = l;
double r239048 = exp(r239047);
double r239049 = -r239047;
double r239050 = exp(r239049);
double r239051 = r239048 - r239050;
double r239052 = r239046 * r239051;
double r239053 = K;
double r239054 = 2.0;
double r239055 = r239053 / r239054;
double r239056 = cos(r239055);
double r239057 = r239052 * r239056;
double r239058 = U;
double r239059 = r239057 + r239058;
return r239059;
}
double f(double J, double l, double K, double U) {
double r239060 = J;
double r239061 = 0.3333333333333333;
double r239062 = l;
double r239063 = 3.0;
double r239064 = pow(r239062, r239063);
double r239065 = r239061 * r239064;
double r239066 = 0.016666666666666666;
double r239067 = 5.0;
double r239068 = pow(r239062, r239067);
double r239069 = r239066 * r239068;
double r239070 = 2.0;
double r239071 = r239070 * r239062;
double r239072 = r239069 + r239071;
double r239073 = r239065 + r239072;
double r239074 = r239060 * r239073;
double r239075 = K;
double r239076 = 2.0;
double r239077 = r239075 / r239076;
double r239078 = cos(r239077);
double r239079 = r239074 * r239078;
double r239080 = U;
double r239081 = r239079 + r239080;
return r239081;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Results
Initial program 17.9
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2020042
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
:precision binary64
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))