\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 -1.3819507464850254 \cdot 10^{-285}:\\
\;\;\;\;\left(\mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(J \cdot -2\right)\\
\mathbf{elif}\;J \le 2.7346568877506468 \cdot 10^{-278}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(J \cdot -2\right)\\
\end{array}double f(double J, double K, double U) {
double r4641656 = -2.0;
double r4641657 = J;
double r4641658 = r4641656 * r4641657;
double r4641659 = K;
double r4641660 = 2.0;
double r4641661 = r4641659 / r4641660;
double r4641662 = cos(r4641661);
double r4641663 = r4641658 * r4641662;
double r4641664 = 1.0;
double r4641665 = U;
double r4641666 = r4641660 * r4641657;
double r4641667 = r4641666 * r4641662;
double r4641668 = r4641665 / r4641667;
double r4641669 = pow(r4641668, r4641660);
double r4641670 = r4641664 + r4641669;
double r4641671 = sqrt(r4641670);
double r4641672 = r4641663 * r4641671;
return r4641672;
}
double f(double J, double K, double U) {
double r4641673 = J;
double r4641674 = -1.3819507464850254e-285;
bool r4641675 = r4641673 <= r4641674;
double r4641676 = 1.0;
double r4641677 = U;
double r4641678 = K;
double r4641679 = 2.0;
double r4641680 = r4641678 / r4641679;
double r4641681 = cos(r4641680);
double r4641682 = r4641681 * r4641679;
double r4641683 = r4641682 * r4641673;
double r4641684 = r4641677 / r4641683;
double r4641685 = hypot(r4641676, r4641684);
double r4641686 = r4641685 * r4641681;
double r4641687 = -2.0;
double r4641688 = r4641673 * r4641687;
double r4641689 = r4641686 * r4641688;
double r4641690 = 2.7346568877506468e-278;
bool r4641691 = r4641673 <= r4641690;
double r4641692 = -r4641677;
double r4641693 = r4641691 ? r4641692 : r4641689;
double r4641694 = r4641675 ? r4641689 : r4641693;
return r4641694;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.3819507464850254e-285 or 2.7346568877506468e-278 < J Initial program 16.0
Simplified6.8
rmApplied associate-*r*6.9
if -1.3819507464850254e-285 < J < 2.7346568877506468e-278Initial program 43.3
Simplified30.1
Taylor expanded around inf 30.0
Simplified30.0
Final simplification7.8
herbie shell --seed 2019158 +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)))))