\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 r179948 = -2.0;
double r179949 = J;
double r179950 = r179948 * r179949;
double r179951 = K;
double r179952 = 2.0;
double r179953 = r179951 / r179952;
double r179954 = cos(r179953);
double r179955 = r179950 * r179954;
double r179956 = 1.0;
double r179957 = U;
double r179958 = r179952 * r179949;
double r179959 = r179958 * r179954;
double r179960 = r179957 / r179959;
double r179961 = pow(r179960, r179952);
double r179962 = r179956 + r179961;
double r179963 = sqrt(r179962);
double r179964 = r179955 * r179963;
return r179964;
}
double f(double J, double K, double U) {
double r179965 = -2.0;
double r179966 = J;
double r179967 = r179965 * r179966;
double r179968 = K;
double r179969 = 2.0;
double r179970 = r179968 / r179969;
double r179971 = cos(r179970);
double r179972 = r179967 * r179971;
double r179973 = 1.0;
double r179974 = sqrt(r179973);
double r179975 = U;
double r179976 = r179969 * r179966;
double r179977 = r179976 * r179971;
double r179978 = r179975 / r179977;
double r179979 = 2.0;
double r179980 = r179969 / r179979;
double r179981 = pow(r179978, r179980);
double r179982 = hypot(r179974, r179981);
double r179983 = r179972 * r179982;
return r179983;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.4
rmApplied sqr-pow17.4
Applied add-sqr-sqrt17.4
Applied hypot-def7.4
Final simplification7.4
herbie shell --seed 2020047 +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)))))