\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 r248991 = -2.0;
double r248992 = J;
double r248993 = r248991 * r248992;
double r248994 = K;
double r248995 = 2.0;
double r248996 = r248994 / r248995;
double r248997 = cos(r248996);
double r248998 = r248993 * r248997;
double r248999 = 1.0;
double r249000 = U;
double r249001 = r248995 * r248992;
double r249002 = r249001 * r248997;
double r249003 = r249000 / r249002;
double r249004 = pow(r249003, r248995);
double r249005 = r248999 + r249004;
double r249006 = sqrt(r249005);
double r249007 = r248998 * r249006;
return r249007;
}
double f(double J, double K, double U) {
double r249008 = -2.0;
double r249009 = J;
double r249010 = r249008 * r249009;
double r249011 = K;
double r249012 = 2.0;
double r249013 = r249011 / r249012;
double r249014 = cos(r249013);
double r249015 = r249010 * r249014;
double r249016 = 1.0;
double r249017 = sqrt(r249016);
double r249018 = U;
double r249019 = r249012 * r249009;
double r249020 = r249019 * r249014;
double r249021 = r249018 / r249020;
double r249022 = 2.0;
double r249023 = r249012 / r249022;
double r249024 = pow(r249021, r249023);
double r249025 = hypot(r249017, r249024);
double r249026 = r249015 * r249025;
return r249026;
}



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)))))