\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 -6.5450850664377556 \cdot 10^{+243}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right) \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r4829895 = -2.0;
double r4829896 = J;
double r4829897 = r4829895 * r4829896;
double r4829898 = K;
double r4829899 = 2.0;
double r4829900 = r4829898 / r4829899;
double r4829901 = cos(r4829900);
double r4829902 = r4829897 * r4829901;
double r4829903 = 1.0;
double r4829904 = U;
double r4829905 = r4829899 * r4829896;
double r4829906 = r4829905 * r4829901;
double r4829907 = r4829904 / r4829906;
double r4829908 = pow(r4829907, r4829899);
double r4829909 = r4829903 + r4829908;
double r4829910 = sqrt(r4829909);
double r4829911 = r4829902 * r4829910;
return r4829911;
}
double f(double J, double K, double U) {
double r4829912 = U;
double r4829913 = -6.5450850664377556e+243;
bool r4829914 = r4829912 <= r4829913;
double r4829915 = -r4829912;
double r4829916 = 1.0;
double r4829917 = K;
double r4829918 = 2.0;
double r4829919 = r4829917 / r4829918;
double r4829920 = cos(r4829919);
double r4829921 = r4829920 * r4829918;
double r4829922 = J;
double r4829923 = r4829921 * r4829922;
double r4829924 = r4829912 / r4829923;
double r4829925 = hypot(r4829916, r4829924);
double r4829926 = -2.0;
double r4829927 = r4829926 * r4829922;
double r4829928 = r4829927 * r4829920;
double r4829929 = r4829925 * r4829928;
double r4829930 = r4829914 ? r4829915 : r4829929;
return r4829930;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -6.5450850664377556e+243Initial program 41.8
Simplified27.5
Taylor expanded around inf 34.3
Simplified34.3
if -6.5450850664377556e+243 < U Initial program 16.2
Simplified6.8
Final simplification8.2
herbie shell --seed 2019162 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))