\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 r4032210 = J;
double r4032211 = l;
double r4032212 = exp(r4032211);
double r4032213 = -r4032211;
double r4032214 = exp(r4032213);
double r4032215 = r4032212 - r4032214;
double r4032216 = r4032210 * r4032215;
double r4032217 = K;
double r4032218 = 2.0;
double r4032219 = r4032217 / r4032218;
double r4032220 = cos(r4032219);
double r4032221 = r4032216 * r4032220;
double r4032222 = U;
double r4032223 = r4032221 + r4032222;
return r4032223;
}
double f(double J, double l, double K, double U) {
double r4032224 = K;
double r4032225 = 2.0;
double r4032226 = r4032224 / r4032225;
double r4032227 = cos(r4032226);
double r4032228 = l;
double r4032229 = r4032228 + r4032228;
double r4032230 = J;
double r4032231 = r4032229 * r4032230;
double r4032232 = U;
double r4032233 = fma(r4032227, r4032231, r4032232);
return r4032233;
}



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 2019171 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))