\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}\;J \le -3.3576117535859503 \cdot 10^{-209}:\\
\;\;\;\;\sqrt{1 + \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)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{elif}\;J \le 1.4740161299218837 \cdot 10^{-204}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 + \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)}} \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 r4942895 = -2.0;
double r4942896 = J;
double r4942897 = r4942895 * r4942896;
double r4942898 = K;
double r4942899 = 2.0;
double r4942900 = r4942898 / r4942899;
double r4942901 = cos(r4942900);
double r4942902 = r4942897 * r4942901;
double r4942903 = 1.0;
double r4942904 = U;
double r4942905 = r4942899 * r4942896;
double r4942906 = r4942905 * r4942901;
double r4942907 = r4942904 / r4942906;
double r4942908 = pow(r4942907, r4942899);
double r4942909 = r4942903 + r4942908;
double r4942910 = sqrt(r4942909);
double r4942911 = r4942902 * r4942910;
return r4942911;
}
double f(double J, double K, double U) {
double r4942912 = J;
double r4942913 = -3.3576117535859503e-209;
bool r4942914 = r4942912 <= r4942913;
double r4942915 = 1.0;
double r4942916 = U;
double r4942917 = K;
double r4942918 = 2.0;
double r4942919 = r4942917 / r4942918;
double r4942920 = cos(r4942919);
double r4942921 = r4942918 * r4942912;
double r4942922 = r4942920 * r4942921;
double r4942923 = r4942916 / r4942922;
double r4942924 = r4942923 * r4942923;
double r4942925 = r4942915 + r4942924;
double r4942926 = sqrt(r4942925);
double r4942927 = -2.0;
double r4942928 = r4942927 * r4942912;
double r4942929 = r4942920 * r4942928;
double r4942930 = r4942926 * r4942929;
double r4942931 = 1.4740161299218837e-204;
bool r4942932 = r4942912 <= r4942931;
double r4942933 = -r4942916;
double r4942934 = r4942932 ? r4942933 : r4942930;
double r4942935 = r4942914 ? r4942930 : r4942934;
return r4942935;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -3.3576117535859503e-209 or 1.4740161299218837e-204 < J Initial program 12.3
Simplified12.3
if -3.3576117535859503e-209 < J < 1.4740161299218837e-204Initial program 42.3
Simplified42.3
Taylor expanded around inf 33.1
Simplified33.1
Final simplification15.7
herbie shell --seed 2019152
(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)))))