\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 r161245 = J;
double r161246 = l;
double r161247 = exp(r161246);
double r161248 = -r161246;
double r161249 = exp(r161248);
double r161250 = r161247 - r161249;
double r161251 = r161245 * r161250;
double r161252 = K;
double r161253 = 2.0;
double r161254 = r161252 / r161253;
double r161255 = cos(r161254);
double r161256 = r161251 * r161255;
double r161257 = U;
double r161258 = r161256 + r161257;
return r161258;
}
double f(double J, double l, double K, double U) {
double r161259 = J;
double r161260 = 0.3333333333333333;
double r161261 = l;
double r161262 = 3.0;
double r161263 = pow(r161261, r161262);
double r161264 = r161260 * r161263;
double r161265 = 0.016666666666666666;
double r161266 = 5.0;
double r161267 = pow(r161261, r161266);
double r161268 = r161265 * r161267;
double r161269 = 2.0;
double r161270 = r161269 * r161261;
double r161271 = r161268 + r161270;
double r161272 = r161264 + r161271;
double r161273 = r161259 * r161272;
double r161274 = K;
double r161275 = 2.0;
double r161276 = r161274 / r161275;
double r161277 = cos(r161276);
double r161278 = r161273 * r161277;
double r161279 = U;
double r161280 = r161278 + r161279;
return r161280;
}



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 2020035
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
:precision binary64
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))