\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 -1.424674344764941 \cdot 10^{+239}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\mathsf{hypot}\left(1, \frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r2176370 = -2.0;
double r2176371 = J;
double r2176372 = r2176370 * r2176371;
double r2176373 = K;
double r2176374 = 2.0;
double r2176375 = r2176373 / r2176374;
double r2176376 = cos(r2176375);
double r2176377 = r2176372 * r2176376;
double r2176378 = 1.0;
double r2176379 = U;
double r2176380 = r2176374 * r2176371;
double r2176381 = r2176380 * r2176376;
double r2176382 = r2176379 / r2176381;
double r2176383 = pow(r2176382, r2176374);
double r2176384 = r2176378 + r2176383;
double r2176385 = sqrt(r2176384);
double r2176386 = r2176377 * r2176385;
return r2176386;
}
double f(double J, double K, double U) {
double r2176387 = U;
double r2176388 = -1.424674344764941e+239;
bool r2176389 = r2176387 <= r2176388;
double r2176390 = -r2176387;
double r2176391 = 1.0;
double r2176392 = 2.0;
double r2176393 = J;
double r2176394 = r2176392 * r2176393;
double r2176395 = K;
double r2176396 = r2176395 / r2176392;
double r2176397 = cos(r2176396);
double r2176398 = r2176394 * r2176397;
double r2176399 = r2176387 / r2176398;
double r2176400 = hypot(r2176391, r2176399);
double r2176401 = -2.0;
double r2176402 = r2176401 * r2176393;
double r2176403 = r2176397 * r2176402;
double r2176404 = r2176400 * r2176403;
double r2176405 = r2176389 ? r2176390 : r2176404;
return r2176405;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -1.424674344764941e+239Initial program 39.5
Simplified24.2
Taylor expanded around inf 33.2
Simplified33.2
if -1.424674344764941e+239 < U Initial program 15.5
Simplified6.1
Final simplification7.6
herbie shell --seed 2019155 +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)))))