\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}\;\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}} = -\infty \lor \neg \left(\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}} \le 2.060066890954713680905695378128061767254 \cdot 10^{306}\right):\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\
\mathbf{else}:\\
\;\;\;\;\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}}\\
\end{array}double f(double J, double K, double U) {
double r96429 = -2.0;
double r96430 = J;
double r96431 = r96429 * r96430;
double r96432 = K;
double r96433 = 2.0;
double r96434 = r96432 / r96433;
double r96435 = cos(r96434);
double r96436 = r96431 * r96435;
double r96437 = 1.0;
double r96438 = U;
double r96439 = r96433 * r96430;
double r96440 = r96439 * r96435;
double r96441 = r96438 / r96440;
double r96442 = pow(r96441, r96433);
double r96443 = r96437 + r96442;
double r96444 = sqrt(r96443);
double r96445 = r96436 * r96444;
return r96445;
}
double f(double J, double K, double U) {
double r96446 = -2.0;
double r96447 = J;
double r96448 = r96446 * r96447;
double r96449 = K;
double r96450 = 2.0;
double r96451 = r96449 / r96450;
double r96452 = cos(r96451);
double r96453 = r96448 * r96452;
double r96454 = 1.0;
double r96455 = U;
double r96456 = r96450 * r96447;
double r96457 = r96456 * r96452;
double r96458 = r96455 / r96457;
double r96459 = pow(r96458, r96450);
double r96460 = r96454 + r96459;
double r96461 = sqrt(r96460);
double r96462 = r96453 * r96461;
double r96463 = -inf.0;
bool r96464 = r96462 <= r96463;
double r96465 = 2.0600668909547137e+306;
bool r96466 = r96462 <= r96465;
double r96467 = !r96466;
bool r96468 = r96464 || r96467;
double r96469 = 0.25;
double r96470 = sqrt(r96469);
double r96471 = r96470 * r96455;
double r96472 = 0.5;
double r96473 = r96472 * r96449;
double r96474 = cos(r96473);
double r96475 = r96447 * r96474;
double r96476 = r96471 / r96475;
double r96477 = r96453 * r96476;
double r96478 = r96468 ? r96477 : r96462;
return r96478;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < -inf.0 or 2.0600668909547137e+306 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) Initial program 63.6
Taylor expanded around inf 45.8
if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 2.0600668909547137e+306Initial program 0.1
Final simplification13.0
herbie shell --seed 2019323
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
:precision binary64
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))