\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 -5.928674869168628889484109583876842263371 \cdot 10^{-224}:\\
\;\;\;\;\left(\left|\sqrt[3]{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right| \cdot \left(-2 \cdot \left(J \cdot \cos \left(\frac{K}{2}\right)\right)\right)\right) \cdot \left|\sqrt[3]{\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}}\right|\\
\mathbf{elif}\;J \le 1.006919644133390623029514297475878068522 \cdot 10^{-222}:\\
\;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\right)\\
\mathbf{else}:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \cos \left(\frac{K}{2}\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r130641 = -2.0;
double r130642 = J;
double r130643 = r130641 * r130642;
double r130644 = K;
double r130645 = 2.0;
double r130646 = r130644 / r130645;
double r130647 = cos(r130646);
double r130648 = r130643 * r130647;
double r130649 = 1.0;
double r130650 = U;
double r130651 = r130645 * r130642;
double r130652 = r130651 * r130647;
double r130653 = r130650 / r130652;
double r130654 = pow(r130653, r130645);
double r130655 = r130649 + r130654;
double r130656 = sqrt(r130655);
double r130657 = r130648 * r130656;
return r130657;
}
double f(double J, double K, double U) {
double r130658 = J;
double r130659 = -5.928674869168629e-224;
bool r130660 = r130658 <= r130659;
double r130661 = 1.0;
double r130662 = U;
double r130663 = 2.0;
double r130664 = r130663 * r130658;
double r130665 = K;
double r130666 = r130665 / r130663;
double r130667 = cos(r130666);
double r130668 = r130664 * r130667;
double r130669 = r130662 / r130668;
double r130670 = pow(r130669, r130663);
double r130671 = r130661 + r130670;
double r130672 = cbrt(r130671);
double r130673 = fabs(r130672);
double r130674 = -2.0;
double r130675 = r130658 * r130667;
double r130676 = r130674 * r130675;
double r130677 = r130673 * r130676;
double r130678 = sqrt(r130671);
double r130679 = cbrt(r130678);
double r130680 = fabs(r130679);
double r130681 = r130677 * r130680;
double r130682 = 1.0069196441333906e-222;
bool r130683 = r130658 <= r130682;
double r130684 = 0.25;
double r130685 = sqrt(r130684);
double r130686 = r130685 * r130662;
double r130687 = r130674 * r130686;
double r130688 = r130674 * r130658;
double r130689 = r130678 * r130667;
double r130690 = r130688 * r130689;
double r130691 = r130683 ? r130687 : r130690;
double r130692 = r130660 ? r130681 : r130691;
return r130692;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -5.928674869168629e-224Initial program 13.9
rmApplied add-cube-cbrt14.1
Applied sqrt-prod14.1
Applied associate-*r*14.1
Simplified14.1
rmApplied add-sqr-sqrt14.1
Applied cbrt-prod14.1
Applied rem-sqrt-square14.1
if -5.928674869168629e-224 < J < 1.0069196441333906e-222Initial program 43.6
rmApplied associate-*l*43.7
Simplified43.7
Taylor expanded around 0 33.1
if 1.0069196441333906e-222 < J Initial program 13.9
rmApplied associate-*l*13.9
Simplified13.9
Final simplification16.7
herbie shell --seed 2019235
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
:precision binary64
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))