\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UJ \cdot \left(\mathsf{fma}\left(\left(\mathsf{fma}\left(\left(\ell \cdot \ell\right), \frac{1}{3}, 2\right)\right), \ell, \left(\left(\left(\left(\ell \cdot \ell\right) \cdot \left(\ell \cdot \ell\right)\right) \cdot \ell\right) \cdot \frac{1}{60}\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right) + Udouble f(double J, double l, double K, double U) {
double r3062745 = J;
double r3062746 = l;
double r3062747 = exp(r3062746);
double r3062748 = -r3062746;
double r3062749 = exp(r3062748);
double r3062750 = r3062747 - r3062749;
double r3062751 = r3062745 * r3062750;
double r3062752 = K;
double r3062753 = 2.0;
double r3062754 = r3062752 / r3062753;
double r3062755 = cos(r3062754);
double r3062756 = r3062751 * r3062755;
double r3062757 = U;
double r3062758 = r3062756 + r3062757;
return r3062758;
}
double f(double J, double l, double K, double U) {
double r3062759 = J;
double r3062760 = l;
double r3062761 = r3062760 * r3062760;
double r3062762 = 0.3333333333333333;
double r3062763 = 2.0;
double r3062764 = fma(r3062761, r3062762, r3062763);
double r3062765 = r3062761 * r3062761;
double r3062766 = r3062765 * r3062760;
double r3062767 = 0.016666666666666666;
double r3062768 = r3062766 * r3062767;
double r3062769 = fma(r3062764, r3062760, r3062768);
double r3062770 = K;
double r3062771 = r3062770 / r3062763;
double r3062772 = cos(r3062771);
double r3062773 = r3062769 * r3062772;
double r3062774 = r3062759 * r3062773;
double r3062775 = U;
double r3062776 = r3062774 + r3062775;
return r3062776;
}



Bits error versus J



Bits error versus l



Bits error versus K



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