\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\mathsf{fma}\left(J, \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, 2 \cdot \ell\right)\right) \cdot \cos \left(\frac{K}{2}\right), U\right)double f(double J, double l, double K, double U) {
double r73673 = J;
double r73674 = l;
double r73675 = exp(r73674);
double r73676 = -r73674;
double r73677 = exp(r73676);
double r73678 = r73675 - r73677;
double r73679 = r73673 * r73678;
double r73680 = K;
double r73681 = 2.0;
double r73682 = r73680 / r73681;
double r73683 = cos(r73682);
double r73684 = r73679 * r73683;
double r73685 = U;
double r73686 = r73684 + r73685;
return r73686;
}
double f(double J, double l, double K, double U) {
double r73687 = J;
double r73688 = 0.3333333333333333;
double r73689 = l;
double r73690 = 3.0;
double r73691 = pow(r73689, r73690);
double r73692 = 0.016666666666666666;
double r73693 = 5.0;
double r73694 = pow(r73689, r73693);
double r73695 = 2.0;
double r73696 = r73695 * r73689;
double r73697 = fma(r73692, r73694, r73696);
double r73698 = fma(r73688, r73691, r73697);
double r73699 = K;
double r73700 = 2.0;
double r73701 = r73699 / r73700;
double r73702 = cos(r73701);
double r73703 = r73698 * r73702;
double r73704 = U;
double r73705 = fma(r73687, r73703, r73704);
return r73705;
}



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
rmApplied fma-def0.4
Final simplification0.4
herbie shell --seed 2019323 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
:precision binary64
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))