\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(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\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)\right)double f(double J, double K, double U) {
double r179985 = -2.0;
double r179986 = J;
double r179987 = r179985 * r179986;
double r179988 = K;
double r179989 = 2.0;
double r179990 = r179988 / r179989;
double r179991 = cos(r179990);
double r179992 = r179987 * r179991;
double r179993 = 1.0;
double r179994 = U;
double r179995 = r179989 * r179986;
double r179996 = r179995 * r179991;
double r179997 = r179994 / r179996;
double r179998 = pow(r179997, r179989);
double r179999 = r179993 + r179998;
double r180000 = sqrt(r179999);
double r180001 = r179992 * r180000;
return r180001;
}
double f(double J, double K, double U) {
double r180002 = -2.0;
double r180003 = J;
double r180004 = r180002 * r180003;
double r180005 = K;
double r180006 = 2.0;
double r180007 = r180005 / r180006;
double r180008 = cos(r180007);
double r180009 = 1.0;
double r180010 = sqrt(r180009);
double r180011 = U;
double r180012 = r180006 * r180003;
double r180013 = r180012 * r180008;
double r180014 = r180011 / r180013;
double r180015 = 2.0;
double r180016 = r180006 / r180015;
double r180017 = pow(r180014, r180016);
double r180018 = hypot(r180010, r180017);
double r180019 = r180008 * r180018;
double r180020 = r180004 * r180019;
return r180020;
}



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.2
rmApplied associate-*l*8.2
Final simplification8.2
herbie shell --seed 2019326 +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)))))