\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 r179006 = -2.0;
double r179007 = J;
double r179008 = r179006 * r179007;
double r179009 = K;
double r179010 = 2.0;
double r179011 = r179009 / r179010;
double r179012 = cos(r179011);
double r179013 = r179008 * r179012;
double r179014 = 1.0;
double r179015 = U;
double r179016 = r179010 * r179007;
double r179017 = r179016 * r179012;
double r179018 = r179015 / r179017;
double r179019 = pow(r179018, r179010);
double r179020 = r179014 + r179019;
double r179021 = sqrt(r179020);
double r179022 = r179013 * r179021;
return r179022;
}
double f(double J, double K, double U) {
double r179023 = -2.0;
double r179024 = J;
double r179025 = r179023 * r179024;
double r179026 = K;
double r179027 = 2.0;
double r179028 = r179026 / r179027;
double r179029 = cos(r179028);
double r179030 = r179025 * r179029;
double r179031 = 1.0;
double r179032 = sqrt(r179031);
double r179033 = U;
double r179034 = r179027 * r179024;
double r179035 = r179034 * r179029;
double r179036 = r179033 / r179035;
double r179037 = 2.0;
double r179038 = r179027 / r179037;
double r179039 = pow(r179036, r179038);
double r179040 = hypot(r179032, r179039);
double r179041 = r179030 * r179040;
return r179041;
}



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.1
Final simplification8.1
herbie shell --seed 2020042 +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)))))