\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\cos \left(\frac{K}{2}\right) \cdot \left(J \cdot \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, \ell \cdot \mathsf{fma}\left(\frac{1}{3}, \ell \cdot \ell, 2\right)\right)\right) + Udouble f(double J, double l, double K, double U) {
double r3378746 = J;
double r3378747 = l;
double r3378748 = exp(r3378747);
double r3378749 = -r3378747;
double r3378750 = exp(r3378749);
double r3378751 = r3378748 - r3378750;
double r3378752 = r3378746 * r3378751;
double r3378753 = K;
double r3378754 = 2.0;
double r3378755 = r3378753 / r3378754;
double r3378756 = cos(r3378755);
double r3378757 = r3378752 * r3378756;
double r3378758 = U;
double r3378759 = r3378757 + r3378758;
return r3378759;
}
double f(double J, double l, double K, double U) {
double r3378760 = K;
double r3378761 = 2.0;
double r3378762 = r3378760 / r3378761;
double r3378763 = cos(r3378762);
double r3378764 = J;
double r3378765 = 0.016666666666666666;
double r3378766 = l;
double r3378767 = 5.0;
double r3378768 = pow(r3378766, r3378767);
double r3378769 = 0.3333333333333333;
double r3378770 = r3378766 * r3378766;
double r3378771 = fma(r3378769, r3378770, r3378761);
double r3378772 = r3378766 * r3378771;
double r3378773 = fma(r3378765, r3378768, r3378772);
double r3378774 = r3378764 * r3378773;
double r3378775 = r3378763 * r3378774;
double r3378776 = U;
double r3378777 = r3378775 + r3378776;
return r3378777;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Initial program 17.2
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019158 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))