\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\left(J \cdot \left(\frac{{\ell}^{5}}{60} + \left(\left(\frac{{\ell}^{3}}{3} + \ell\right) + \ell\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + Udouble f(double J, double l, double K, double U) {
double r114226 = J;
double r114227 = l;
double r114228 = exp(r114227);
double r114229 = -r114227;
double r114230 = exp(r114229);
double r114231 = r114228 - r114230;
double r114232 = r114226 * r114231;
double r114233 = K;
double r114234 = 2.0;
double r114235 = r114233 / r114234;
double r114236 = cos(r114235);
double r114237 = r114232 * r114236;
double r114238 = U;
double r114239 = r114237 + r114238;
return r114239;
}
double f(double J, double l, double K, double U) {
double r114240 = J;
double r114241 = l;
double r114242 = 5.0;
double r114243 = pow(r114241, r114242);
double r114244 = 60.0;
double r114245 = r114243 / r114244;
double r114246 = 3.0;
double r114247 = pow(r114241, r114246);
double r114248 = r114247 / r114246;
double r114249 = r114248 + r114241;
double r114250 = r114249 + r114241;
double r114251 = r114245 + r114250;
double r114252 = r114240 * r114251;
double r114253 = K;
double r114254 = 2.0;
double r114255 = r114253 / r114254;
double r114256 = cos(r114255);
double r114257 = r114252 * r114256;
double r114258 = U;
double r114259 = r114257 + r114258;
return r114259;
}



Bits error versus J



Bits error versus l



Bits error versus K



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