\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 r72965 = J;
double r72966 = l;
double r72967 = exp(r72966);
double r72968 = -r72966;
double r72969 = exp(r72968);
double r72970 = r72967 - r72969;
double r72971 = r72965 * r72970;
double r72972 = K;
double r72973 = 2.0;
double r72974 = r72972 / r72973;
double r72975 = cos(r72974);
double r72976 = r72971 * r72975;
double r72977 = U;
double r72978 = r72976 + r72977;
return r72978;
}
double f(double J, double l, double K, double U) {
double r72979 = J;
double r72980 = 0.3333333333333333;
double r72981 = l;
double r72982 = 3.0;
double r72983 = pow(r72981, r72982);
double r72984 = 0.016666666666666666;
double r72985 = 5.0;
double r72986 = pow(r72981, r72985);
double r72987 = 2.0;
double r72988 = r72987 * r72981;
double r72989 = fma(r72984, r72986, r72988);
double r72990 = fma(r72980, r72983, r72989);
double r72991 = K;
double r72992 = 2.0;
double r72993 = r72991 / r72992;
double r72994 = cos(r72993);
double r72995 = r72990 * r72994;
double r72996 = U;
double r72997 = fma(r72979, r72995, r72996);
return r72997;
}



Bits error versus J



Bits error versus l



Bits error versus K



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