\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 r251922 = -2.0;
double r251923 = J;
double r251924 = r251922 * r251923;
double r251925 = K;
double r251926 = 2.0;
double r251927 = r251925 / r251926;
double r251928 = cos(r251927);
double r251929 = r251924 * r251928;
double r251930 = 1.0;
double r251931 = U;
double r251932 = r251926 * r251923;
double r251933 = r251932 * r251928;
double r251934 = r251931 / r251933;
double r251935 = pow(r251934, r251926);
double r251936 = r251930 + r251935;
double r251937 = sqrt(r251936);
double r251938 = r251929 * r251937;
return r251938;
}
double f(double J, double K, double U) {
double r251939 = -2.0;
double r251940 = J;
double r251941 = r251939 * r251940;
double r251942 = K;
double r251943 = 2.0;
double r251944 = r251942 / r251943;
double r251945 = cos(r251944);
double r251946 = r251941 * r251945;
double r251947 = 1.0;
double r251948 = sqrt(r251947);
double r251949 = U;
double r251950 = r251943 * r251940;
double r251951 = r251950 * r251945;
double r251952 = r251949 / r251951;
double r251953 = 2.0;
double r251954 = r251943 / r251953;
double r251955 = pow(r251952, r251954);
double r251956 = hypot(r251948, r251955);
double r251957 = r251946 * r251956;
return r251957;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.9
rmApplied sqr-pow17.9
Applied add-sqr-sqrt17.9
Applied hypot-def8.3
Final simplification8.3
herbie shell --seed 2020021 +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)))))