\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\begin{array}{l}
\mathbf{if}\;U \le -1.6416870737127194 \cdot 10^{+260}:\\
\;\;\;\;-U\\
\mathbf{elif}\;U \le 1.8384104522567525 \cdot 10^{+175}:\\
\;\;\;\;\left(-2 \cdot \sqrt{\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2} \cdot \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2} + 1}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)\\
\mathbf{else}:\\
\;\;\;\;-U\\
\end{array}double f(double J, double K, double U) {
double r19069505 = -2.0;
double r19069506 = J;
double r19069507 = r19069505 * r19069506;
double r19069508 = K;
double r19069509 = 2.0;
double r19069510 = r19069508 / r19069509;
double r19069511 = cos(r19069510);
double r19069512 = r19069507 * r19069511;
double r19069513 = 1.0;
double r19069514 = U;
double r19069515 = r19069509 * r19069506;
double r19069516 = r19069515 * r19069511;
double r19069517 = r19069514 / r19069516;
double r19069518 = pow(r19069517, r19069509);
double r19069519 = r19069513 + r19069518;
double r19069520 = sqrt(r19069519);
double r19069521 = r19069512 * r19069520;
return r19069521;
}
double f(double J, double K, double U) {
double r19069522 = U;
double r19069523 = -1.6416870737127194e+260;
bool r19069524 = r19069522 <= r19069523;
double r19069525 = -r19069522;
double r19069526 = 1.8384104522567525e+175;
bool r19069527 = r19069522 <= r19069526;
double r19069528 = -2.0;
double r19069529 = K;
double r19069530 = 2.0;
double r19069531 = r19069529 / r19069530;
double r19069532 = cos(r19069531);
double r19069533 = J;
double r19069534 = r19069532 * r19069533;
double r19069535 = r19069534 * r19069530;
double r19069536 = r19069522 / r19069535;
double r19069537 = r19069536 * r19069536;
double r19069538 = 1.0;
double r19069539 = r19069537 + r19069538;
double r19069540 = sqrt(r19069539);
double r19069541 = r19069528 * r19069540;
double r19069542 = r19069541 * r19069534;
double r19069543 = r19069527 ? r19069542 : r19069525;
double r19069544 = r19069524 ? r19069525 : r19069543;
return r19069544;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -1.6416870737127194e+260 or 1.8384104522567525e+175 < U Initial program 38.6
Simplified38.6
rmApplied add-cube-cbrt38.8
Applied associate-*l*38.8
Taylor expanded around -inf 34.9
Simplified34.9
if -1.6416870737127194e+260 < U < 1.8384104522567525e+175Initial program 13.0
Simplified13.0
Final simplification16.3
herbie shell --seed 2019120
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))