\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 r5007618 = -2.0;
double r5007619 = J;
double r5007620 = r5007618 * r5007619;
double r5007621 = K;
double r5007622 = 2.0;
double r5007623 = r5007621 / r5007622;
double r5007624 = cos(r5007623);
double r5007625 = r5007620 * r5007624;
double r5007626 = 1.0;
double r5007627 = U;
double r5007628 = r5007622 * r5007619;
double r5007629 = r5007628 * r5007624;
double r5007630 = r5007627 / r5007629;
double r5007631 = pow(r5007630, r5007622);
double r5007632 = r5007626 + r5007631;
double r5007633 = sqrt(r5007632);
double r5007634 = r5007625 * r5007633;
return r5007634;
}
double f(double J, double K, double U) {
double r5007635 = U;
double r5007636 = -6.5450850664377556e+243;
bool r5007637 = r5007635 <= r5007636;
double r5007638 = -r5007635;
double r5007639 = 1.0;
double r5007640 = K;
double r5007641 = 2.0;
double r5007642 = r5007640 / r5007641;
double r5007643 = cos(r5007642);
double r5007644 = r5007643 * r5007641;
double r5007645 = J;
double r5007646 = r5007644 * r5007645;
double r5007647 = r5007635 / r5007646;
double r5007648 = hypot(r5007639, r5007647);
double r5007649 = -2.0;
double r5007650 = r5007649 * r5007645;
double r5007651 = r5007650 * r5007643;
double r5007652 = r5007648 * r5007651;
double r5007653 = r5007637 ? r5007638 : r5007652;
return r5007653;
}



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