\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 r110028 = -2.0;
double r110029 = J;
double r110030 = r110028 * r110029;
double r110031 = K;
double r110032 = 2.0;
double r110033 = r110031 / r110032;
double r110034 = cos(r110033);
double r110035 = r110030 * r110034;
double r110036 = 1.0;
double r110037 = U;
double r110038 = r110032 * r110029;
double r110039 = r110038 * r110034;
double r110040 = r110037 / r110039;
double r110041 = pow(r110040, r110032);
double r110042 = r110036 + r110041;
double r110043 = sqrt(r110042);
double r110044 = r110035 * r110043;
return r110044;
}
double f(double J, double K, double U) {
double r110045 = U;
double r110046 = -3.44026472893723e+213;
bool r110047 = r110045 <= r110046;
double r110048 = -1.4686792642946565e+122;
bool r110049 = r110045 <= r110048;
double r110050 = !r110049;
bool r110051 = r110047 || r110050;
double r110052 = -2.0;
double r110053 = J;
double r110054 = r110052 * r110053;
double r110055 = K;
double r110056 = 2.0;
double r110057 = r110055 / r110056;
double r110058 = cos(r110057);
double r110059 = 1.0;
double r110060 = r110056 * r110053;
double r110061 = r110045 / r110060;
double r110062 = r110061 / r110058;
double r110063 = pow(r110062, r110056);
double r110064 = r110059 + r110063;
double r110065 = sqrt(r110064);
double r110066 = r110058 * r110065;
double r110067 = r110054 * r110066;
double r110068 = 0.25;
double r110069 = sqrt(r110068);
double r110070 = r110069 * r110045;
double r110071 = 0.5;
double r110072 = r110071 * r110055;
double r110073 = cos(r110072);
double r110074 = r110053 * r110073;
double r110075 = r110070 / r110074;
double r110076 = r110058 * r110075;
double r110077 = r110054 * r110076;
double r110078 = r110051 ? r110067 : r110077;
return r110078;
}



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)))))