\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}{3}, {\ell}^{3}, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, 2 \cdot \ell\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right) + Udouble f(double J, double l, double K, double U) {
double r99432 = J;
double r99433 = l;
double r99434 = exp(r99433);
double r99435 = -r99433;
double r99436 = exp(r99435);
double r99437 = r99434 - r99436;
double r99438 = r99432 * r99437;
double r99439 = K;
double r99440 = 2.0;
double r99441 = r99439 / r99440;
double r99442 = cos(r99441);
double r99443 = r99438 * r99442;
double r99444 = U;
double r99445 = r99443 + r99444;
return r99445;
}
double f(double J, double l, double K, double U) {
double r99446 = J;
double r99447 = 0.3333333333333333;
double r99448 = l;
double r99449 = 3.0;
double r99450 = pow(r99448, r99449);
double r99451 = 0.016666666666666666;
double r99452 = 5.0;
double r99453 = pow(r99448, r99452);
double r99454 = 2.0;
double r99455 = r99454 * r99448;
double r99456 = fma(r99451, r99453, r99455);
double r99457 = fma(r99447, r99450, r99456);
double r99458 = K;
double r99459 = 2.0;
double r99460 = r99458 / r99459;
double r99461 = cos(r99460);
double r99462 = r99457 * r99461;
double r99463 = r99446 * r99462;
double r99464 = U;
double r99465 = r99463 + r99464;
return r99465;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Initial program 17.8
Taylor expanded around 0 0.4
Simplified0.4
rmApplied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019326 +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))