\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.32384858102125 \cdot 10^{-232}:\\
\;\;\;\;\sqrt{\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{elif}\;J \le 6.925182500906958 \cdot 10^{-195}:\\
\;\;\;\;\cos \left(\frac{K}{2}\right) \cdot \left(-U\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)} + 1} \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 r1937601 = -2.0;
double r1937602 = J;
double r1937603 = r1937601 * r1937602;
double r1937604 = K;
double r1937605 = 2.0;
double r1937606 = r1937604 / r1937605;
double r1937607 = cos(r1937606);
double r1937608 = r1937603 * r1937607;
double r1937609 = 1.0;
double r1937610 = U;
double r1937611 = r1937605 * r1937602;
double r1937612 = r1937611 * r1937607;
double r1937613 = r1937610 / r1937612;
double r1937614 = pow(r1937613, r1937605);
double r1937615 = r1937609 + r1937614;
double r1937616 = sqrt(r1937615);
double r1937617 = r1937608 * r1937616;
return r1937617;
}
double f(double J, double K, double U) {
double r1937618 = J;
double r1937619 = 1.32384858102125e-232;
bool r1937620 = r1937618 <= r1937619;
double r1937621 = U;
double r1937622 = 2.0;
double r1937623 = r1937622 * r1937618;
double r1937624 = K;
double r1937625 = r1937624 / r1937622;
double r1937626 = cos(r1937625);
double r1937627 = r1937623 * r1937626;
double r1937628 = r1937621 / r1937627;
double r1937629 = r1937628 * r1937628;
double r1937630 = 1.0;
double r1937631 = r1937629 + r1937630;
double r1937632 = sqrt(r1937631);
double r1937633 = -2.0;
double r1937634 = r1937633 * r1937618;
double r1937635 = r1937626 * r1937634;
double r1937636 = r1937632 * r1937635;
double r1937637 = 6.925182500906958e-195;
bool r1937638 = r1937618 <= r1937637;
double r1937639 = -r1937621;
double r1937640 = r1937626 * r1937639;
double r1937641 = r1937638 ? r1937640 : r1937636;
double r1937642 = r1937620 ? r1937636 : r1937641;
return r1937642;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < 1.32384858102125e-232 or 6.925182500906958e-195 < J Initial program 17.4
Simplified17.4
if 1.32384858102125e-232 < J < 6.925182500906958e-195Initial program 34.4
Simplified34.4
rmApplied associate-*l*34.4
Taylor expanded around 0 46.6
Simplified46.6
Final simplification18.3
herbie shell --seed 2019156
(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)))))