\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(\mathsf{fma}\left(2, \ell, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, \frac{1}{3} \cdot {\ell}^{3}\right)\right) \cdot J\right) \cdot \cos \left(\frac{K}{2}\right) + Udouble f(double J, double l, double K, double U) {
double r71498 = J;
double r71499 = l;
double r71500 = exp(r71499);
double r71501 = -r71499;
double r71502 = exp(r71501);
double r71503 = r71500 - r71502;
double r71504 = r71498 * r71503;
double r71505 = K;
double r71506 = 2.0;
double r71507 = r71505 / r71506;
double r71508 = cos(r71507);
double r71509 = r71504 * r71508;
double r71510 = U;
double r71511 = r71509 + r71510;
return r71511;
}
double f(double J, double l, double K, double U) {
double r71512 = 2.0;
double r71513 = l;
double r71514 = 0.016666666666666666;
double r71515 = 5.0;
double r71516 = pow(r71513, r71515);
double r71517 = 0.3333333333333333;
double r71518 = 3.0;
double r71519 = pow(r71513, r71518);
double r71520 = r71517 * r71519;
double r71521 = fma(r71514, r71516, r71520);
double r71522 = fma(r71512, r71513, r71521);
double r71523 = J;
double r71524 = r71522 * r71523;
double r71525 = K;
double r71526 = 2.0;
double r71527 = r71525 / r71526;
double r71528 = cos(r71527);
double r71529 = r71524 * r71528;
double r71530 = U;
double r71531 = r71529 + r71530;
return r71531;
}



Bits error versus J



Bits error versus l



Bits error versus K



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