\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\mathsf{fma}\left(\cos \left(\frac{K}{2}\right), \left(\ell + \ell\right) \cdot J, U\right)double f(double J, double l, double K, double U) {
double r3497290 = J;
double r3497291 = l;
double r3497292 = exp(r3497291);
double r3497293 = -r3497291;
double r3497294 = exp(r3497293);
double r3497295 = r3497292 - r3497294;
double r3497296 = r3497290 * r3497295;
double r3497297 = K;
double r3497298 = 2.0;
double r3497299 = r3497297 / r3497298;
double r3497300 = cos(r3497299);
double r3497301 = r3497296 * r3497300;
double r3497302 = U;
double r3497303 = r3497301 + r3497302;
return r3497303;
}
double f(double J, double l, double K, double U) {
double r3497304 = K;
double r3497305 = 2.0;
double r3497306 = r3497304 / r3497305;
double r3497307 = cos(r3497306);
double r3497308 = l;
double r3497309 = r3497308 + r3497308;
double r3497310 = J;
double r3497311 = r3497309 * r3497310;
double r3497312 = U;
double r3497313 = fma(r3497307, r3497311, r3497312);
return r3497313;
}



Bits error versus J



Bits error versus l



Bits error versus K



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