\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 6.776472368521582017281087471749617082602 \cdot 10^{299}\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 r251434 = -2.0;
double r251435 = J;
double r251436 = r251434 * r251435;
double r251437 = K;
double r251438 = 2.0;
double r251439 = r251437 / r251438;
double r251440 = cos(r251439);
double r251441 = r251436 * r251440;
double r251442 = 1.0;
double r251443 = U;
double r251444 = r251438 * r251435;
double r251445 = r251444 * r251440;
double r251446 = r251443 / r251445;
double r251447 = pow(r251446, r251438);
double r251448 = r251442 + r251447;
double r251449 = sqrt(r251448);
double r251450 = r251441 * r251449;
return r251450;
}
double f(double J, double K, double U) {
double r251451 = -2.0;
double r251452 = J;
double r251453 = r251451 * r251452;
double r251454 = K;
double r251455 = 2.0;
double r251456 = r251454 / r251455;
double r251457 = cos(r251456);
double r251458 = r251453 * r251457;
double r251459 = 1.0;
double r251460 = U;
double r251461 = r251455 * r251452;
double r251462 = r251461 * r251457;
double r251463 = r251460 / r251462;
double r251464 = pow(r251463, r251455);
double r251465 = r251459 + r251464;
double r251466 = sqrt(r251465);
double r251467 = r251458 * r251466;
double r251468 = -inf.0;
bool r251469 = r251467 <= r251468;
double r251470 = 6.776472368521582e+299;
bool r251471 = r251467 <= r251470;
double r251472 = !r251471;
bool r251473 = r251469 || r251472;
double r251474 = 0.25;
double r251475 = sqrt(r251474);
double r251476 = r251475 * r251460;
double r251477 = 0.5;
double r251478 = r251477 * r251454;
double r251479 = cos(r251478);
double r251480 = r251452 * r251479;
double r251481 = r251476 / r251480;
double r251482 = r251458 * r251481;
double r251483 = r251473 ? r251482 : r251467;
return r251483;
}



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 6.776472368521582e+299 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) Initial program 62.3
Taylor expanded around inf 46.4
if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 6.776472368521582e+299Initial program 0.1
Final simplification13.6
herbie shell --seed 2019346
(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)))))