\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 r161914 = -2.0;
double r161915 = J;
double r161916 = r161914 * r161915;
double r161917 = K;
double r161918 = 2.0;
double r161919 = r161917 / r161918;
double r161920 = cos(r161919);
double r161921 = r161916 * r161920;
double r161922 = 1.0;
double r161923 = U;
double r161924 = r161918 * r161915;
double r161925 = r161924 * r161920;
double r161926 = r161923 / r161925;
double r161927 = pow(r161926, r161918);
double r161928 = r161922 + r161927;
double r161929 = sqrt(r161928);
double r161930 = r161921 * r161929;
return r161930;
}
double f(double J, double K, double U) {
double r161931 = -2.0;
double r161932 = J;
double r161933 = r161931 * r161932;
double r161934 = K;
double r161935 = 2.0;
double r161936 = r161934 / r161935;
double r161937 = cos(r161936);
double r161938 = r161933 * r161937;
double r161939 = 1.0;
double r161940 = sqrt(r161939);
double r161941 = U;
double r161942 = r161935 * r161932;
double r161943 = r161942 * r161937;
double r161944 = r161941 / r161943;
double r161945 = 2.0;
double r161946 = r161935 / r161945;
double r161947 = pow(r161944, r161946);
double r161948 = hypot(r161940, r161947);
double r161949 = r161938 * r161948;
return r161949;
}



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-def7.9
Final simplification7.9
herbie shell --seed 2020001 +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)))))