\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.875491213433985 \cdot 10^{+171}:\\
\;\;\;\;\left(\left(J \cdot -2\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)\right)\\
\mathbf{elif}\;U \le 9.166002875458719 \cdot 10^{+250}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(J \cdot -2\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{\mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)\right)}\right) \cdot \sqrt[3]{\sqrt{\mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)\right)} \cdot \left(\sqrt{\mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)\right)} \cdot \sqrt{\mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)\right)}\right)}\\
\end{array}double f(double J, double K, double U) {
double r19116752 = -2.0;
double r19116753 = J;
double r19116754 = r19116752 * r19116753;
double r19116755 = K;
double r19116756 = 2.0;
double r19116757 = r19116755 / r19116756;
double r19116758 = cos(r19116757);
double r19116759 = r19116754 * r19116758;
double r19116760 = 1.0;
double r19116761 = U;
double r19116762 = r19116756 * r19116753;
double r19116763 = r19116762 * r19116758;
double r19116764 = r19116761 / r19116763;
double r19116765 = pow(r19116764, r19116756);
double r19116766 = r19116760 + r19116765;
double r19116767 = sqrt(r19116766);
double r19116768 = r19116759 * r19116767;
return r19116768;
}
double f(double J, double K, double U) {
double r19116769 = U;
double r19116770 = 9.875491213433985e+171;
bool r19116771 = r19116769 <= r19116770;
double r19116772 = J;
double r19116773 = -2.0;
double r19116774 = r19116772 * r19116773;
double r19116775 = K;
double r19116776 = 2.0;
double r19116777 = r19116775 / r19116776;
double r19116778 = cos(r19116777);
double r19116779 = r19116774 * r19116778;
double r19116780 = 1.0;
double r19116781 = r19116776 * r19116778;
double r19116782 = r19116772 * r19116781;
double r19116783 = r19116769 / r19116782;
double r19116784 = hypot(r19116780, r19116783);
double r19116785 = r19116779 * r19116784;
double r19116786 = 9.166002875458719e+250;
bool r19116787 = r19116769 <= r19116786;
double r19116788 = -r19116769;
double r19116789 = sqrt(r19116784);
double r19116790 = r19116779 * r19116789;
double r19116791 = r19116789 * r19116789;
double r19116792 = r19116789 * r19116791;
double r19116793 = cbrt(r19116792);
double r19116794 = r19116790 * r19116793;
double r19116795 = r19116787 ? r19116788 : r19116794;
double r19116796 = r19116771 ? r19116785 : r19116795;
return r19116796;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < 9.875491213433985e+171Initial program 14.5
Simplified6.0
if 9.875491213433985e+171 < U < 9.166002875458719e+250Initial program 36.2
Simplified18.7
Taylor expanded around -inf 37.3
Simplified37.3
if 9.166002875458719e+250 < U Initial program 39.6
Simplified26.9
rmApplied add-sqr-sqrt27.1
Applied associate-*l*27.1
rmApplied add-cbrt-cube34.4
Final simplification9.4
herbie shell --seed 2019107 +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)))))