\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(\left({\ell}^{5} \cdot \frac{1}{60} + \left(2 + \left(\frac{1}{3} \cdot \ell\right) \cdot \ell\right) \cdot \ell\right) \cdot J\right) \cdot \cos \left(\frac{K}{2}\right) + Udouble f(double J, double l, double K, double U) {
double r10504830 = J;
double r10504831 = l;
double r10504832 = exp(r10504831);
double r10504833 = -r10504831;
double r10504834 = exp(r10504833);
double r10504835 = r10504832 - r10504834;
double r10504836 = r10504830 * r10504835;
double r10504837 = K;
double r10504838 = 2.0;
double r10504839 = r10504837 / r10504838;
double r10504840 = cos(r10504839);
double r10504841 = r10504836 * r10504840;
double r10504842 = U;
double r10504843 = r10504841 + r10504842;
return r10504843;
}
double f(double J, double l, double K, double U) {
double r10504844 = l;
double r10504845 = 5.0;
double r10504846 = pow(r10504844, r10504845);
double r10504847 = 0.016666666666666666;
double r10504848 = r10504846 * r10504847;
double r10504849 = 2.0;
double r10504850 = 0.3333333333333333;
double r10504851 = r10504850 * r10504844;
double r10504852 = r10504851 * r10504844;
double r10504853 = r10504849 + r10504852;
double r10504854 = r10504853 * r10504844;
double r10504855 = r10504848 + r10504854;
double r10504856 = J;
double r10504857 = r10504855 * r10504856;
double r10504858 = K;
double r10504859 = r10504858 / r10504849;
double r10504860 = cos(r10504859);
double r10504861 = r10504857 * r10504860;
double r10504862 = U;
double r10504863 = r10504861 + r10504862;
return r10504863;
}



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
Simplified0.4
Final simplification0.4
herbie shell --seed 2019104
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))