\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 r194850 = -2.0;
double r194851 = J;
double r194852 = r194850 * r194851;
double r194853 = K;
double r194854 = 2.0;
double r194855 = r194853 / r194854;
double r194856 = cos(r194855);
double r194857 = r194852 * r194856;
double r194858 = 1.0;
double r194859 = U;
double r194860 = r194854 * r194851;
double r194861 = r194860 * r194856;
double r194862 = r194859 / r194861;
double r194863 = pow(r194862, r194854);
double r194864 = r194858 + r194863;
double r194865 = sqrt(r194864);
double r194866 = r194857 * r194865;
return r194866;
}
double f(double J, double K, double U) {
double r194867 = -2.0;
double r194868 = J;
double r194869 = r194867 * r194868;
double r194870 = K;
double r194871 = 2.0;
double r194872 = r194870 / r194871;
double r194873 = cos(r194872);
double r194874 = r194869 * r194873;
double r194875 = 1.0;
double r194876 = sqrt(r194875);
double r194877 = U;
double r194878 = r194871 * r194868;
double r194879 = r194878 * r194873;
double r194880 = r194877 / r194879;
double r194881 = 2.0;
double r194882 = r194871 / r194881;
double r194883 = pow(r194880, r194882);
double r194884 = hypot(r194876, r194883);
double r194885 = r194874 * r194884;
return r194885;
}



Bits error versus J



Bits error versus K



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