\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(J \cdot \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, 2 \cdot \ell\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + Udouble f(double J, double l, double K, double U) {
double r157384 = J;
double r157385 = l;
double r157386 = exp(r157385);
double r157387 = -r157385;
double r157388 = exp(r157387);
double r157389 = r157386 - r157388;
double r157390 = r157384 * r157389;
double r157391 = K;
double r157392 = 2.0;
double r157393 = r157391 / r157392;
double r157394 = cos(r157393);
double r157395 = r157390 * r157394;
double r157396 = U;
double r157397 = r157395 + r157396;
return r157397;
}
double f(double J, double l, double K, double U) {
double r157398 = J;
double r157399 = 0.3333333333333333;
double r157400 = l;
double r157401 = 3.0;
double r157402 = pow(r157400, r157401);
double r157403 = 0.016666666666666666;
double r157404 = 5.0;
double r157405 = pow(r157400, r157404);
double r157406 = 2.0;
double r157407 = r157406 * r157400;
double r157408 = fma(r157403, r157405, r157407);
double r157409 = fma(r157399, r157402, r157408);
double r157410 = r157398 * r157409;
double r157411 = K;
double r157412 = 2.0;
double r157413 = r157411 / r157412;
double r157414 = cos(r157413);
double r157415 = r157410 * r157414;
double r157416 = U;
double r157417 = r157415 + r157416;
return r157417;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Initial program 17.5
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020002 +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))