\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 r164865 = -2.0;
double r164866 = J;
double r164867 = r164865 * r164866;
double r164868 = K;
double r164869 = 2.0;
double r164870 = r164868 / r164869;
double r164871 = cos(r164870);
double r164872 = r164867 * r164871;
double r164873 = 1.0;
double r164874 = U;
double r164875 = r164869 * r164866;
double r164876 = r164875 * r164871;
double r164877 = r164874 / r164876;
double r164878 = pow(r164877, r164869);
double r164879 = r164873 + r164878;
double r164880 = sqrt(r164879);
double r164881 = r164872 * r164880;
return r164881;
}
double f(double J, double K, double U) {
double r164882 = -2.0;
double r164883 = J;
double r164884 = r164882 * r164883;
double r164885 = K;
double r164886 = 2.0;
double r164887 = r164885 / r164886;
double r164888 = cos(r164887);
double r164889 = r164884 * r164888;
double r164890 = 1.0;
double r164891 = sqrt(r164890);
double r164892 = U;
double r164893 = r164886 * r164883;
double r164894 = r164893 * r164888;
double r164895 = r164892 / r164894;
double r164896 = 2.0;
double r164897 = r164886 / r164896;
double r164898 = pow(r164895, r164897);
double r164899 = hypot(r164891, r164898);
double r164900 = r164889 * r164899;
return r164900;
}



Bits error versus J



Bits error versus K



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