\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UJ \cdot \left(\mathsf{fma}\left(\frac{1}{60}, \left({\ell}^{5}\right), \left(\ell \cdot \mathsf{fma}\left(\frac{1}{3}, \left(\ell \cdot \ell\right), 2\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right) + Udouble f(double J, double l, double K, double U) {
double r8187573 = J;
double r8187574 = l;
double r8187575 = exp(r8187574);
double r8187576 = -r8187574;
double r8187577 = exp(r8187576);
double r8187578 = r8187575 - r8187577;
double r8187579 = r8187573 * r8187578;
double r8187580 = K;
double r8187581 = 2.0;
double r8187582 = r8187580 / r8187581;
double r8187583 = cos(r8187582);
double r8187584 = r8187579 * r8187583;
double r8187585 = U;
double r8187586 = r8187584 + r8187585;
return r8187586;
}
double f(double J, double l, double K, double U) {
double r8187587 = J;
double r8187588 = 0.016666666666666666;
double r8187589 = l;
double r8187590 = 5.0;
double r8187591 = pow(r8187589, r8187590);
double r8187592 = 0.3333333333333333;
double r8187593 = r8187589 * r8187589;
double r8187594 = 2.0;
double r8187595 = fma(r8187592, r8187593, r8187594);
double r8187596 = r8187589 * r8187595;
double r8187597 = fma(r8187588, r8187591, r8187596);
double r8187598 = K;
double r8187599 = r8187598 / r8187594;
double r8187600 = cos(r8187599);
double r8187601 = r8187597 * r8187600;
double r8187602 = r8187587 * r8187601;
double r8187603 = U;
double r8187604 = r8187602 + r8187603;
return r8187604;
}



Bits error versus J



Bits error versus l



Bits error versus K



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