\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UU + \cos \left(\frac{K}{2}\right) \cdot \left(J \cdot \left(\mathsf{fma}\left(\ell \cdot \ell, \frac{1}{3}, 2\right) \cdot \ell\right) + \left({\ell}^{5} \cdot \frac{1}{60}\right) \cdot J\right)double f(double J, double l, double K, double U) {
double r4145738 = J;
double r4145739 = l;
double r4145740 = exp(r4145739);
double r4145741 = -r4145739;
double r4145742 = exp(r4145741);
double r4145743 = r4145740 - r4145742;
double r4145744 = r4145738 * r4145743;
double r4145745 = K;
double r4145746 = 2.0;
double r4145747 = r4145745 / r4145746;
double r4145748 = cos(r4145747);
double r4145749 = r4145744 * r4145748;
double r4145750 = U;
double r4145751 = r4145749 + r4145750;
return r4145751;
}
double f(double J, double l, double K, double U) {
double r4145752 = U;
double r4145753 = K;
double r4145754 = 2.0;
double r4145755 = r4145753 / r4145754;
double r4145756 = cos(r4145755);
double r4145757 = J;
double r4145758 = l;
double r4145759 = r4145758 * r4145758;
double r4145760 = 0.3333333333333333;
double r4145761 = 2.0;
double r4145762 = fma(r4145759, r4145760, r4145761);
double r4145763 = r4145762 * r4145758;
double r4145764 = r4145757 * r4145763;
double r4145765 = 5.0;
double r4145766 = pow(r4145758, r4145765);
double r4145767 = 0.016666666666666666;
double r4145768 = r4145766 * r4145767;
double r4145769 = r4145768 * r4145757;
double r4145770 = r4145764 + r4145769;
double r4145771 = r4145756 * r4145770;
double r4145772 = r4145752 + r4145771;
return r4145772;
}



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 fma-udef0.4
Applied distribute-rgt-in0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019170 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))