\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 3.98535180511046398 \cdot 10^{298}\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 r162442 = -2.0;
double r162443 = J;
double r162444 = r162442 * r162443;
double r162445 = K;
double r162446 = 2.0;
double r162447 = r162445 / r162446;
double r162448 = cos(r162447);
double r162449 = r162444 * r162448;
double r162450 = 1.0;
double r162451 = U;
double r162452 = r162446 * r162443;
double r162453 = r162452 * r162448;
double r162454 = r162451 / r162453;
double r162455 = pow(r162454, r162446);
double r162456 = r162450 + r162455;
double r162457 = sqrt(r162456);
double r162458 = r162449 * r162457;
return r162458;
}
double f(double J, double K, double U) {
double r162459 = -2.0;
double r162460 = J;
double r162461 = r162459 * r162460;
double r162462 = K;
double r162463 = 2.0;
double r162464 = r162462 / r162463;
double r162465 = cos(r162464);
double r162466 = r162461 * r162465;
double r162467 = 1.0;
double r162468 = U;
double r162469 = r162463 * r162460;
double r162470 = r162469 * r162465;
double r162471 = r162468 / r162470;
double r162472 = pow(r162471, r162463);
double r162473 = r162467 + r162472;
double r162474 = sqrt(r162473);
double r162475 = r162466 * r162474;
double r162476 = -inf.0;
bool r162477 = r162475 <= r162476;
double r162478 = 3.985351805110464e+298;
bool r162479 = r162475 <= r162478;
double r162480 = !r162479;
bool r162481 = r162477 || r162480;
double r162482 = 0.25;
double r162483 = sqrt(r162482);
double r162484 = r162483 * r162468;
double r162485 = 0.5;
double r162486 = r162485 * r162462;
double r162487 = cos(r162486);
double r162488 = r162460 * r162487;
double r162489 = r162484 / r162488;
double r162490 = r162466 * r162489;
double r162491 = r162481 ? r162490 : r162475;
return r162491;
}



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 3.985351805110464e+298 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) Initial program 61.9
Taylor expanded around inf 46.9
if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 3.985351805110464e+298Initial program 0.1
Final simplification13.9
herbie shell --seed 2020036
(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)))))