\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}\;J \le -4.670715667185797 \cdot 10^{-84}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{elif}\;J \le 9.321107477371502 \cdot 10^{-282}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r4362448 = -2.0;
double r4362449 = J;
double r4362450 = r4362448 * r4362449;
double r4362451 = K;
double r4362452 = 2.0;
double r4362453 = r4362451 / r4362452;
double r4362454 = cos(r4362453);
double r4362455 = r4362450 * r4362454;
double r4362456 = 1.0;
double r4362457 = U;
double r4362458 = r4362452 * r4362449;
double r4362459 = r4362458 * r4362454;
double r4362460 = r4362457 / r4362459;
double r4362461 = pow(r4362460, r4362452);
double r4362462 = r4362456 + r4362461;
double r4362463 = sqrt(r4362462);
double r4362464 = r4362455 * r4362463;
return r4362464;
}
double f(double J, double K, double U) {
double r4362465 = J;
double r4362466 = -4.670715667185797e-84;
bool r4362467 = r4362465 <= r4362466;
double r4362468 = 1.0;
double r4362469 = U;
double r4362470 = K;
double r4362471 = 2.0;
double r4362472 = r4362470 / r4362471;
double r4362473 = cos(r4362472);
double r4362474 = r4362471 * r4362465;
double r4362475 = r4362473 * r4362474;
double r4362476 = r4362469 / r4362475;
double r4362477 = r4362476 * r4362476;
double r4362478 = r4362468 + r4362477;
double r4362479 = sqrt(r4362478);
double r4362480 = -2.0;
double r4362481 = r4362480 * r4362465;
double r4362482 = r4362473 * r4362481;
double r4362483 = r4362479 * r4362482;
double r4362484 = 9.321107477371502e-282;
bool r4362485 = r4362465 <= r4362484;
double r4362486 = -r4362469;
double r4362487 = r4362485 ? r4362486 : r4362483;
double r4362488 = r4362467 ? r4362483 : r4362487;
return r4362488;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -4.670715667185797e-84 or 9.321107477371502e-282 < J Initial program 11.7
Simplified11.7
if -4.670715667185797e-84 < J < 9.321107477371502e-282Initial program 36.2
Simplified36.2
Taylor expanded around -inf 37.0
Simplified37.0
Final simplification17.1
herbie shell --seed 2019135
(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)))))