\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 -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\right)\\
\end{array}double f(double J, double K, double U) {
double r110614 = -2.0;
double r110615 = J;
double r110616 = r110614 * r110615;
double r110617 = K;
double r110618 = 2.0;
double r110619 = r110617 / r110618;
double r110620 = cos(r110619);
double r110621 = r110616 * r110620;
double r110622 = 1.0;
double r110623 = U;
double r110624 = r110618 * r110615;
double r110625 = r110624 * r110620;
double r110626 = r110623 / r110625;
double r110627 = pow(r110626, r110618);
double r110628 = r110622 + r110627;
double r110629 = sqrt(r110628);
double r110630 = r110621 * r110629;
return r110630;
}
double f(double J, double K, double U) {
double r110631 = U;
double r110632 = -3.44026472893723e+213;
bool r110633 = r110631 <= r110632;
double r110634 = -1.4686792642946565e+122;
bool r110635 = r110631 <= r110634;
double r110636 = !r110635;
bool r110637 = r110633 || r110636;
double r110638 = -2.0;
double r110639 = J;
double r110640 = r110638 * r110639;
double r110641 = K;
double r110642 = 2.0;
double r110643 = r110641 / r110642;
double r110644 = cos(r110643);
double r110645 = 1.0;
double r110646 = r110642 * r110639;
double r110647 = r110631 / r110646;
double r110648 = r110647 / r110644;
double r110649 = pow(r110648, r110642);
double r110650 = r110645 + r110649;
double r110651 = sqrt(r110650);
double r110652 = r110644 * r110651;
double r110653 = r110640 * r110652;
double r110654 = 0.25;
double r110655 = sqrt(r110654);
double r110656 = r110655 * r110631;
double r110657 = 0.5;
double r110658 = r110657 * r110641;
double r110659 = cos(r110658);
double r110660 = r110639 * r110659;
double r110661 = r110656 / r110660;
double r110662 = r110644 * r110661;
double r110663 = r110640 * r110662;
double r110664 = r110637 ? r110653 : r110663;
return r110664;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -3.44026472893723e+213 or -1.4686792642946565e+122 < U Initial program 16.5
rmApplied associate-*l*16.5
rmApplied associate-/r*16.5
if -3.44026472893723e+213 < U < -1.4686792642946565e+122Initial program 33.2
rmApplied associate-*l*33.2
Taylor expanded around inf 48.8
Final simplification18.9
herbie shell --seed 2019325
(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)))))