\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 -7.058933556787815 \cdot 10^{+257}:\\
\;\;\;\;-U\\
\mathbf{elif}\;U \le 5.984451745017958 \cdot 10^{+172}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{\frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} + 1}\\
\mathbf{else}:\\
\;\;\;\;-U\\
\end{array}double f(double J, double K, double U) {
double r4529861 = -2.0;
double r4529862 = J;
double r4529863 = r4529861 * r4529862;
double r4529864 = K;
double r4529865 = 2.0;
double r4529866 = r4529864 / r4529865;
double r4529867 = cos(r4529866);
double r4529868 = r4529863 * r4529867;
double r4529869 = 1.0;
double r4529870 = U;
double r4529871 = r4529865 * r4529862;
double r4529872 = r4529871 * r4529867;
double r4529873 = r4529870 / r4529872;
double r4529874 = pow(r4529873, r4529865);
double r4529875 = r4529869 + r4529874;
double r4529876 = sqrt(r4529875);
double r4529877 = r4529868 * r4529876;
return r4529877;
}
double f(double J, double K, double U) {
double r4529878 = U;
double r4529879 = -7.058933556787815e+257;
bool r4529880 = r4529878 <= r4529879;
double r4529881 = -r4529878;
double r4529882 = 5.984451745017958e+172;
bool r4529883 = r4529878 <= r4529882;
double r4529884 = -2.0;
double r4529885 = J;
double r4529886 = r4529884 * r4529885;
double r4529887 = K;
double r4529888 = 2.0;
double r4529889 = r4529887 / r4529888;
double r4529890 = cos(r4529889);
double r4529891 = r4529886 * r4529890;
double r4529892 = r4529888 * r4529885;
double r4529893 = r4529890 * r4529892;
double r4529894 = r4529878 / r4529893;
double r4529895 = r4529894 * r4529894;
double r4529896 = 1.0;
double r4529897 = r4529895 + r4529896;
double r4529898 = sqrt(r4529897);
double r4529899 = r4529891 * r4529898;
double r4529900 = r4529883 ? r4529899 : r4529881;
double r4529901 = r4529880 ? r4529881 : r4529900;
return r4529901;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -7.058933556787815e+257 or 5.984451745017958e+172 < U Initial program 40.1
Simplified40.1
Taylor expanded around inf 34.7
Simplified34.7
if -7.058933556787815e+257 < U < 5.984451745017958e+172Initial program 13.1
Simplified13.1
Final simplification16.4
herbie shell --seed 2019134
(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)))))