\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}}\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(\sqrt{1}, {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{\left(\frac{2}{2}\right)}\right)double f(double J, double K, double U) {
double r147703 = -2.0;
double r147704 = J;
double r147705 = r147703 * r147704;
double r147706 = K;
double r147707 = 2.0;
double r147708 = r147706 / r147707;
double r147709 = cos(r147708);
double r147710 = r147705 * r147709;
double r147711 = 1.0;
double r147712 = U;
double r147713 = r147707 * r147704;
double r147714 = r147713 * r147709;
double r147715 = r147712 / r147714;
double r147716 = pow(r147715, r147707);
double r147717 = r147711 + r147716;
double r147718 = sqrt(r147717);
double r147719 = r147710 * r147718;
return r147719;
}
double f(double J, double K, double U) {
double r147720 = -2.0;
double r147721 = J;
double r147722 = r147720 * r147721;
double r147723 = K;
double r147724 = 2.0;
double r147725 = r147723 / r147724;
double r147726 = cos(r147725);
double r147727 = r147722 * r147726;
double r147728 = 1.0;
double r147729 = sqrt(r147728);
double r147730 = U;
double r147731 = r147724 * r147721;
double r147732 = r147731 * r147726;
double r147733 = r147730 / r147732;
double r147734 = 2.0;
double r147735 = r147724 / r147734;
double r147736 = pow(r147733, r147735);
double r147737 = hypot(r147729, r147736);
double r147738 = r147727 * r147737;
return r147738;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.7
rmApplied sqr-pow17.7
Applied add-sqr-sqrt17.7
Applied hypot-def7.9
Final simplification7.9
herbie shell --seed 2019208 +o rules:numerics
(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)))))