\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 r156950 = -2.0;
double r156951 = J;
double r156952 = r156950 * r156951;
double r156953 = K;
double r156954 = 2.0;
double r156955 = r156953 / r156954;
double r156956 = cos(r156955);
double r156957 = r156952 * r156956;
double r156958 = 1.0;
double r156959 = U;
double r156960 = r156954 * r156951;
double r156961 = r156960 * r156956;
double r156962 = r156959 / r156961;
double r156963 = pow(r156962, r156954);
double r156964 = r156958 + r156963;
double r156965 = sqrt(r156964);
double r156966 = r156957 * r156965;
return r156966;
}
double f(double J, double K, double U) {
double r156967 = -2.0;
double r156968 = J;
double r156969 = r156967 * r156968;
double r156970 = K;
double r156971 = 2.0;
double r156972 = r156970 / r156971;
double r156973 = cos(r156972);
double r156974 = r156969 * r156973;
double r156975 = 1.0;
double r156976 = sqrt(r156975);
double r156977 = U;
double r156978 = r156971 * r156968;
double r156979 = r156978 * r156973;
double r156980 = r156977 / r156979;
double r156981 = 2.0;
double r156982 = r156971 / r156981;
double r156983 = pow(r156980, r156982);
double r156984 = hypot(r156976, r156983);
double r156985 = r156974 * r156984;
return r156985;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.3
rmApplied sqr-pow18.3
Applied add-sqr-sqrt18.3
Applied hypot-def8.0
Final simplification8.0
herbie shell --seed 2019209 +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)))))