\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(J \cdot \left(\frac{1}{3} \cdot {\ell}^{3} + \left(\frac{1}{60} \cdot {\ell}^{5} + 2 \cdot \ell\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + Udouble f(double J, double l, double K, double U) {
double r81261 = J;
double r81262 = l;
double r81263 = exp(r81262);
double r81264 = -r81262;
double r81265 = exp(r81264);
double r81266 = r81263 - r81265;
double r81267 = r81261 * r81266;
double r81268 = K;
double r81269 = 2.0;
double r81270 = r81268 / r81269;
double r81271 = cos(r81270);
double r81272 = r81267 * r81271;
double r81273 = U;
double r81274 = r81272 + r81273;
return r81274;
}
double f(double J, double l, double K, double U) {
double r81275 = J;
double r81276 = 0.3333333333333333;
double r81277 = l;
double r81278 = 3.0;
double r81279 = pow(r81277, r81278);
double r81280 = r81276 * r81279;
double r81281 = 0.016666666666666666;
double r81282 = 5.0;
double r81283 = pow(r81277, r81282);
double r81284 = r81281 * r81283;
double r81285 = 2.0;
double r81286 = r81285 * r81277;
double r81287 = r81284 + r81286;
double r81288 = r81280 + r81287;
double r81289 = r81275 * r81288;
double r81290 = K;
double r81291 = 2.0;
double r81292 = r81290 / r81291;
double r81293 = cos(r81292);
double r81294 = r81289 * r81293;
double r81295 = U;
double r81296 = r81294 + r81295;
return r81296;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Results
Initial program 17.5
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2019294
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
:precision binary64
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))