\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 -7.162239869679763003503637235692728069393 \cdot 10^{262}:\\
\;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(-2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r7670759 = -2.0;
double r7670760 = J;
double r7670761 = r7670759 * r7670760;
double r7670762 = K;
double r7670763 = 2.0;
double r7670764 = r7670762 / r7670763;
double r7670765 = cos(r7670764);
double r7670766 = r7670761 * r7670765;
double r7670767 = 1.0;
double r7670768 = U;
double r7670769 = r7670763 * r7670760;
double r7670770 = r7670769 * r7670765;
double r7670771 = r7670768 / r7670770;
double r7670772 = pow(r7670771, r7670763);
double r7670773 = r7670767 + r7670772;
double r7670774 = sqrt(r7670773);
double r7670775 = r7670766 * r7670774;
return r7670775;
}
double f(double J, double K, double U) {
double r7670776 = U;
double r7670777 = -7.162239869679763e+262;
bool r7670778 = r7670776 <= r7670777;
double r7670779 = -2.0;
double r7670780 = 0.25;
double r7670781 = sqrt(r7670780);
double r7670782 = r7670781 * r7670776;
double r7670783 = r7670779 * r7670782;
double r7670784 = 2.0;
double r7670785 = K;
double r7670786 = r7670785 / r7670784;
double r7670787 = cos(r7670786);
double r7670788 = J;
double r7670789 = r7670787 * r7670788;
double r7670790 = r7670784 * r7670789;
double r7670791 = r7670776 / r7670790;
double r7670792 = 2.0;
double r7670793 = r7670784 / r7670792;
double r7670794 = pow(r7670791, r7670793);
double r7670795 = 1.0;
double r7670796 = sqrt(r7670795);
double r7670797 = hypot(r7670794, r7670796);
double r7670798 = r7670779 * r7670789;
double r7670799 = r7670797 * r7670798;
double r7670800 = r7670778 ? r7670783 : r7670799;
return r7670800;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -7.162239869679763e+262Initial program 42.4
Simplified42.4
Taylor expanded around inf 31.7
if -7.162239869679763e+262 < U Initial program 17.1
Simplified17.1
rmApplied add-sqr-sqrt17.1
Applied sqr-pow17.1
Applied hypot-def7.3
Final simplification8.2
herbie shell --seed 2019172 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))