\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UJ \cdot \left(\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)\right) + Udouble f(double J, double l, double K, double U) {
double r86010 = J;
double r86011 = l;
double r86012 = exp(r86011);
double r86013 = -r86011;
double r86014 = exp(r86013);
double r86015 = r86012 - r86014;
double r86016 = r86010 * r86015;
double r86017 = K;
double r86018 = 2.0;
double r86019 = r86017 / r86018;
double r86020 = cos(r86019);
double r86021 = r86016 * r86020;
double r86022 = U;
double r86023 = r86021 + r86022;
return r86023;
}
double f(double J, double l, double K, double U) {
double r86024 = J;
double r86025 = 0.3333333333333333;
double r86026 = l;
double r86027 = 3.0;
double r86028 = pow(r86026, r86027);
double r86029 = 0.016666666666666666;
double r86030 = 5.0;
double r86031 = pow(r86026, r86030);
double r86032 = 2.0;
double r86033 = r86032 * r86026;
double r86034 = fma(r86029, r86031, r86033);
double r86035 = fma(r86025, r86028, r86034);
double r86036 = K;
double r86037 = 2.0;
double r86038 = r86036 / r86037;
double r86039 = cos(r86038);
double r86040 = r86035 * r86039;
double r86041 = r86024 * r86040;
double r86042 = U;
double r86043 = r86041 + r86042;
return r86043;
}



Bits error versus J



Bits error versus l



Bits error versus K



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