\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(\left(\ell \cdot \cos \left(\frac{K}{2}\right)\right) \cdot 2\right) \cdot J + Udouble f(double J, double l, double K, double U) {
double r3017468 = J;
double r3017469 = l;
double r3017470 = exp(r3017469);
double r3017471 = -r3017469;
double r3017472 = exp(r3017471);
double r3017473 = r3017470 - r3017472;
double r3017474 = r3017468 * r3017473;
double r3017475 = K;
double r3017476 = 2.0;
double r3017477 = r3017475 / r3017476;
double r3017478 = cos(r3017477);
double r3017479 = r3017474 * r3017478;
double r3017480 = U;
double r3017481 = r3017479 + r3017480;
return r3017481;
}
double f(double J, double l, double K, double U) {
double r3017482 = l;
double r3017483 = K;
double r3017484 = 2.0;
double r3017485 = r3017483 / r3017484;
double r3017486 = cos(r3017485);
double r3017487 = r3017482 * r3017486;
double r3017488 = r3017487 * r3017484;
double r3017489 = J;
double r3017490 = r3017488 * r3017489;
double r3017491 = U;
double r3017492 = r3017490 + r3017491;
return r3017492;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Results
Initial program 18.0
Simplified18.1
Taylor expanded around 0 0.7
rmApplied add-sqr-sqrt1.0
Applied associate-*l*0.9
rmApplied fma-udef0.9
Simplified0.7
Final simplification0.7
herbie shell --seed 2019168 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))