\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 2.123088257299218 \cdot 10^{+195}:\\
\;\;\;\;\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{else}:\\
\;\;\;\;-U\\
\end{array}double f(double J, double K, double U) {
double r29749579 = -2.0;
double r29749580 = J;
double r29749581 = r29749579 * r29749580;
double r29749582 = K;
double r29749583 = 2.0;
double r29749584 = r29749582 / r29749583;
double r29749585 = cos(r29749584);
double r29749586 = r29749581 * r29749585;
double r29749587 = 1.0;
double r29749588 = U;
double r29749589 = r29749583 * r29749580;
double r29749590 = r29749589 * r29749585;
double r29749591 = r29749588 / r29749590;
double r29749592 = pow(r29749591, r29749583);
double r29749593 = r29749587 + r29749592;
double r29749594 = sqrt(r29749593);
double r29749595 = r29749586 * r29749594;
return r29749595;
}
double f(double J, double K, double U) {
double r29749596 = U;
double r29749597 = 2.123088257299218e+195;
bool r29749598 = r29749596 <= r29749597;
double r29749599 = J;
double r29749600 = -2.0;
double r29749601 = r29749599 * r29749600;
double r29749602 = K;
double r29749603 = 2.0;
double r29749604 = r29749602 / r29749603;
double r29749605 = cos(r29749604);
double r29749606 = r29749601 * r29749605;
double r29749607 = 1.0;
double r29749608 = r29749603 * r29749605;
double r29749609 = r29749599 * r29749608;
double r29749610 = r29749596 / r29749609;
double r29749611 = hypot(r29749607, r29749610);
double r29749612 = r29749606 * r29749611;
double r29749613 = -r29749596;
double r29749614 = r29749598 ? r29749612 : r29749613;
return r29749614;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < 2.123088257299218e+195Initial program 15.1
Simplified6.1
if 2.123088257299218e+195 < U Initial program 40.0
Simplified23.7
Taylor expanded around inf 34.0
Simplified34.0
Final simplification8.5
herbie shell --seed 2019124 +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)))))