\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 -1.695779976879255982558026234609200293772 \cdot 10^{242}:\\
\;\;\;\;\left(\sqrt{0.25} \cdot U\right) \cdot -2\\
\mathbf{elif}\;U \le 8.829662133181109072663956909723817245939 \cdot 10^{179}:\\
\;\;\;\;\left(-2 \cdot \sqrt{{\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2} + 1}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{0.25} \cdot U\right) \cdot -2\\
\end{array}double f(double J, double K, double U) {
double r7649603 = -2.0;
double r7649604 = J;
double r7649605 = r7649603 * r7649604;
double r7649606 = K;
double r7649607 = 2.0;
double r7649608 = r7649606 / r7649607;
double r7649609 = cos(r7649608);
double r7649610 = r7649605 * r7649609;
double r7649611 = 1.0;
double r7649612 = U;
double r7649613 = r7649607 * r7649604;
double r7649614 = r7649613 * r7649609;
double r7649615 = r7649612 / r7649614;
double r7649616 = pow(r7649615, r7649607);
double r7649617 = r7649611 + r7649616;
double r7649618 = sqrt(r7649617);
double r7649619 = r7649610 * r7649618;
return r7649619;
}
double f(double J, double K, double U) {
double r7649620 = U;
double r7649621 = -1.695779976879256e+242;
bool r7649622 = r7649620 <= r7649621;
double r7649623 = 0.25;
double r7649624 = sqrt(r7649623);
double r7649625 = r7649624 * r7649620;
double r7649626 = -2.0;
double r7649627 = r7649625 * r7649626;
double r7649628 = 8.829662133181109e+179;
bool r7649629 = r7649620 <= r7649628;
double r7649630 = K;
double r7649631 = 2.0;
double r7649632 = r7649630 / r7649631;
double r7649633 = cos(r7649632);
double r7649634 = J;
double r7649635 = r7649633 * r7649634;
double r7649636 = r7649635 * r7649631;
double r7649637 = r7649620 / r7649636;
double r7649638 = pow(r7649637, r7649631);
double r7649639 = 1.0;
double r7649640 = r7649638 + r7649639;
double r7649641 = sqrt(r7649640);
double r7649642 = r7649626 * r7649641;
double r7649643 = r7649642 * r7649635;
double r7649644 = r7649629 ? r7649643 : r7649627;
double r7649645 = r7649622 ? r7649627 : r7649644;
return r7649645;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -1.695779976879256e+242 or 8.829662133181109e+179 < U Initial program 42.3
Simplified42.3
Taylor expanded around inf 36.2
if -1.695779976879256e+242 < U < 8.829662133181109e+179Initial program 13.6
Simplified13.6
Final simplification17.0
herbie shell --seed 2019200
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))