\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\cos \left(\frac{K}{2}\right) \cdot \left(J \cdot \mathsf{fma}\left(\ell, \mathsf{fma}\left(\frac{1}{3} \cdot \ell, \ell, 2\right), {\ell}^{5} \cdot \frac{1}{60}\right)\right) + Udouble f(double J, double l, double K, double U) {
double r3043375 = J;
double r3043376 = l;
double r3043377 = exp(r3043376);
double r3043378 = -r3043376;
double r3043379 = exp(r3043378);
double r3043380 = r3043377 - r3043379;
double r3043381 = r3043375 * r3043380;
double r3043382 = K;
double r3043383 = 2.0;
double r3043384 = r3043382 / r3043383;
double r3043385 = cos(r3043384);
double r3043386 = r3043381 * r3043385;
double r3043387 = U;
double r3043388 = r3043386 + r3043387;
return r3043388;
}
double f(double J, double l, double K, double U) {
double r3043389 = K;
double r3043390 = 2.0;
double r3043391 = r3043389 / r3043390;
double r3043392 = cos(r3043391);
double r3043393 = J;
double r3043394 = l;
double r3043395 = 0.3333333333333333;
double r3043396 = r3043395 * r3043394;
double r3043397 = fma(r3043396, r3043394, r3043390);
double r3043398 = 5.0;
double r3043399 = pow(r3043394, r3043398);
double r3043400 = 0.016666666666666666;
double r3043401 = r3043399 * r3043400;
double r3043402 = fma(r3043394, r3043397, r3043401);
double r3043403 = r3043393 * r3043402;
double r3043404 = r3043392 * r3043403;
double r3043405 = U;
double r3043406 = r3043404 + r3043405;
return r3043406;
}



Bits error versus J



Bits error versus l



Bits error versus K



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