\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\mathsf{fma}\left(J, \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, 2 \cdot \ell\right)\right) \cdot \cos \left(\frac{K}{2}\right), U\right)double f(double J, double l, double K, double U) {
double r235239 = J;
double r235240 = l;
double r235241 = exp(r235240);
double r235242 = -r235240;
double r235243 = exp(r235242);
double r235244 = r235241 - r235243;
double r235245 = r235239 * r235244;
double r235246 = K;
double r235247 = 2.0;
double r235248 = r235246 / r235247;
double r235249 = cos(r235248);
double r235250 = r235245 * r235249;
double r235251 = U;
double r235252 = r235250 + r235251;
return r235252;
}
double f(double J, double l, double K, double U) {
double r235253 = J;
double r235254 = 0.3333333333333333;
double r235255 = l;
double r235256 = 3.0;
double r235257 = pow(r235255, r235256);
double r235258 = 0.016666666666666666;
double r235259 = 5.0;
double r235260 = pow(r235255, r235259);
double r235261 = 2.0;
double r235262 = r235261 * r235255;
double r235263 = fma(r235258, r235260, r235262);
double r235264 = fma(r235254, r235257, r235263);
double r235265 = K;
double r235266 = 2.0;
double r235267 = r235265 / r235266;
double r235268 = cos(r235267);
double r235269 = r235264 * r235268;
double r235270 = U;
double r235271 = fma(r235253, r235269, r235270);
return r235271;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Initial program 17.6
Taylor expanded around 0 0.5
Simplified0.5
rmApplied associate-*l*0.5
rmApplied fma-def0.5
Final simplification0.5
herbie shell --seed 2020047 +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))