\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UJ \cdot \left(\mathsf{fma}\left(\ell, \mathsf{fma}\left(\frac{1}{3} \cdot \ell, \ell, 2\right), {\ell}^{5} \cdot \frac{1}{60}\right) \cdot \cos \left(\frac{K}{2}\right)\right) + Udouble f(double J, double l, double K, double U) {
double r3535555 = J;
double r3535556 = l;
double r3535557 = exp(r3535556);
double r3535558 = -r3535556;
double r3535559 = exp(r3535558);
double r3535560 = r3535557 - r3535559;
double r3535561 = r3535555 * r3535560;
double r3535562 = K;
double r3535563 = 2.0;
double r3535564 = r3535562 / r3535563;
double r3535565 = cos(r3535564);
double r3535566 = r3535561 * r3535565;
double r3535567 = U;
double r3535568 = r3535566 + r3535567;
return r3535568;
}
double f(double J, double l, double K, double U) {
double r3535569 = J;
double r3535570 = l;
double r3535571 = 0.3333333333333333;
double r3535572 = r3535571 * r3535570;
double r3535573 = 2.0;
double r3535574 = fma(r3535572, r3535570, r3535573);
double r3535575 = 5.0;
double r3535576 = pow(r3535570, r3535575);
double r3535577 = 0.016666666666666666;
double r3535578 = r3535576 * r3535577;
double r3535579 = fma(r3535570, r3535574, r3535578);
double r3535580 = K;
double r3535581 = r3535580 / r3535573;
double r3535582 = cos(r3535581);
double r3535583 = r3535579 * r3535582;
double r3535584 = r3535569 * r3535583;
double r3535585 = U;
double r3535586 = r3535584 + r3535585;
return r3535586;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Initial program 17.3
Taylor expanded around 0 0.4
Simplified0.4
rmApplied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019163 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))