\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 -9.188850120501022 \cdot 10^{+270}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;J \cdot \left(\left(-2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{\frac{\frac{U}{J}}{\cos \left(\frac{K}{2}\right)}}{2}\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r4531708 = -2.0;
double r4531709 = J;
double r4531710 = r4531708 * r4531709;
double r4531711 = K;
double r4531712 = 2.0;
double r4531713 = r4531711 / r4531712;
double r4531714 = cos(r4531713);
double r4531715 = r4531710 * r4531714;
double r4531716 = 1.0;
double r4531717 = U;
double r4531718 = r4531712 * r4531709;
double r4531719 = r4531718 * r4531714;
double r4531720 = r4531717 / r4531719;
double r4531721 = pow(r4531720, r4531712);
double r4531722 = r4531716 + r4531721;
double r4531723 = sqrt(r4531722);
double r4531724 = r4531715 * r4531723;
return r4531724;
}
double f(double J, double K, double U) {
double r4531725 = U;
double r4531726 = -9.188850120501022e+270;
bool r4531727 = r4531725 <= r4531726;
double r4531728 = -r4531725;
double r4531729 = J;
double r4531730 = -2.0;
double r4531731 = K;
double r4531732 = 2.0;
double r4531733 = r4531731 / r4531732;
double r4531734 = cos(r4531733);
double r4531735 = r4531730 * r4531734;
double r4531736 = 1.0;
double r4531737 = r4531725 / r4531729;
double r4531738 = r4531737 / r4531734;
double r4531739 = r4531738 / r4531732;
double r4531740 = hypot(r4531736, r4531739);
double r4531741 = r4531735 * r4531740;
double r4531742 = r4531729 * r4531741;
double r4531743 = r4531727 ? r4531728 : r4531742;
return r4531743;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -9.188850120501022e+270Initial program 41.2
Simplified26.3
rmApplied associate-*r*26.4
Taylor expanded around -inf 34.1
Simplified34.1
if -9.188850120501022e+270 < U Initial program 16.5
Simplified7.2
rmApplied associate-*r*7.2
rmApplied *-un-lft-identity7.2
Applied associate-*r*7.2
Simplified7.2
Final simplification8.0
herbie shell --seed 2019134 +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)))))