\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 -3.8269945611061177 \cdot 10^{+216}:\\
\;\;\;\;-U\\
\mathbf{elif}\;U \le 2.4620727543234585 \cdot 10^{+85}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(\sqrt{\frac{\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2} \cdot U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2} + 1} \cdot -2\right)\\
\mathbf{else}:\\
\;\;\;\;-U\\
\end{array}double f(double J, double K, double U) {
double r31786585 = -2.0;
double r31786586 = J;
double r31786587 = r31786585 * r31786586;
double r31786588 = K;
double r31786589 = 2.0;
double r31786590 = r31786588 / r31786589;
double r31786591 = cos(r31786590);
double r31786592 = r31786587 * r31786591;
double r31786593 = 1.0;
double r31786594 = U;
double r31786595 = r31786589 * r31786586;
double r31786596 = r31786595 * r31786591;
double r31786597 = r31786594 / r31786596;
double r31786598 = pow(r31786597, r31786589);
double r31786599 = r31786593 + r31786598;
double r31786600 = sqrt(r31786599);
double r31786601 = r31786592 * r31786600;
return r31786601;
}
double f(double J, double K, double U) {
double r31786602 = U;
double r31786603 = -3.8269945611061177e+216;
bool r31786604 = r31786602 <= r31786603;
double r31786605 = -r31786602;
double r31786606 = 2.4620727543234585e+85;
bool r31786607 = r31786602 <= r31786606;
double r31786608 = K;
double r31786609 = 2.0;
double r31786610 = r31786608 / r31786609;
double r31786611 = cos(r31786610);
double r31786612 = J;
double r31786613 = r31786611 * r31786612;
double r31786614 = r31786613 * r31786609;
double r31786615 = r31786602 / r31786614;
double r31786616 = r31786615 * r31786602;
double r31786617 = r31786616 / r31786614;
double r31786618 = 1.0;
double r31786619 = r31786617 + r31786618;
double r31786620 = sqrt(r31786619);
double r31786621 = -2.0;
double r31786622 = r31786620 * r31786621;
double r31786623 = r31786613 * r31786622;
double r31786624 = r31786607 ? r31786623 : r31786605;
double r31786625 = r31786604 ? r31786605 : r31786624;
return r31786625;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < -3.8269945611061177e+216 or 2.4620727543234585e+85 < U Initial program 36.1
Simplified36.1
Taylor expanded around inf 37.2
Simplified37.2
if -3.8269945611061177e+216 < U < 2.4620727543234585e+85Initial program 10.7
Simplified10.7
rmApplied associate-*l/10.9
Final simplification17.5
herbie shell --seed 2019119
(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)))))