\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.6074695776793314 \cdot 10^{-267}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\
\mathbf{elif}\;J \le 1.9290592883268698 \cdot 10^{-140}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\
\end{array}double f(double J, double K, double U) {
double r24579707 = -2.0;
double r24579708 = J;
double r24579709 = r24579707 * r24579708;
double r24579710 = K;
double r24579711 = 2.0;
double r24579712 = r24579710 / r24579711;
double r24579713 = cos(r24579712);
double r24579714 = r24579709 * r24579713;
double r24579715 = 1.0;
double r24579716 = U;
double r24579717 = r24579711 * r24579708;
double r24579718 = r24579717 * r24579713;
double r24579719 = r24579716 / r24579718;
double r24579720 = pow(r24579719, r24579711);
double r24579721 = r24579715 + r24579720;
double r24579722 = sqrt(r24579721);
double r24579723 = r24579714 * r24579722;
return r24579723;
}
double f(double J, double K, double U) {
double r24579724 = J;
double r24579725 = 3.6074695776793314e-267;
bool r24579726 = r24579724 <= r24579725;
double r24579727 = K;
double r24579728 = 2.0;
double r24579729 = r24579727 / r24579728;
double r24579730 = cos(r24579729);
double r24579731 = r24579730 * r24579724;
double r24579732 = -2.0;
double r24579733 = 1.0;
double r24579734 = U;
double r24579735 = r24579728 * r24579731;
double r24579736 = r24579734 / r24579735;
double r24579737 = r24579736 * r24579736;
double r24579738 = r24579733 + r24579737;
double r24579739 = sqrt(r24579738);
double r24579740 = r24579732 * r24579739;
double r24579741 = r24579731 * r24579740;
double r24579742 = 1.9290592883268698e-140;
bool r24579743 = r24579724 <= r24579742;
double r24579744 = -r24579734;
double r24579745 = r24579743 ? r24579744 : r24579741;
double r24579746 = r24579726 ? r24579741 : r24579745;
return r24579746;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < 3.6074695776793314e-267 or 1.9290592883268698e-140 < J Initial program 14.9
Simplified14.9
if 3.6074695776793314e-267 < J < 1.9290592883268698e-140Initial program 36.0
Simplified36.0
Taylor expanded around -inf 37.5
Simplified37.5
Final simplification17.3
herbie shell --seed 2019107
(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)))))