\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UU + J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(\left(\left(\ell + \ell\right) + {\ell}^{3} \cdot \frac{1}{3}\right) + {\ell}^{5} \cdot \frac{1}{60}\right)\right)double f(double J, double l, double K, double U) {
double r84976 = J;
double r84977 = l;
double r84978 = exp(r84977);
double r84979 = -r84977;
double r84980 = exp(r84979);
double r84981 = r84978 - r84980;
double r84982 = r84976 * r84981;
double r84983 = K;
double r84984 = 2.0;
double r84985 = r84983 / r84984;
double r84986 = cos(r84985);
double r84987 = r84982 * r84986;
double r84988 = U;
double r84989 = r84987 + r84988;
return r84989;
}
double f(double J, double l, double K, double U) {
double r84990 = U;
double r84991 = J;
double r84992 = K;
double r84993 = 2.0;
double r84994 = r84992 / r84993;
double r84995 = cos(r84994);
double r84996 = l;
double r84997 = r84996 + r84996;
double r84998 = 3.0;
double r84999 = pow(r84996, r84998);
double r85000 = 0.3333333333333333;
double r85001 = r84999 * r85000;
double r85002 = r84997 + r85001;
double r85003 = 5.0;
double r85004 = pow(r84996, r85003);
double r85005 = 0.016666666666666666;
double r85006 = r85004 * r85005;
double r85007 = r85002 + r85006;
double r85008 = r84995 * r85007;
double r85009 = r84991 * r85008;
double r85010 = r84990 + r85009;
return r85010;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Results
Initial program 17.6
Simplified17.6
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019174
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))