\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}}\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(-2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)\right)double f(double J, double K, double U) {
double r6075914 = -2.0;
double r6075915 = J;
double r6075916 = r6075914 * r6075915;
double r6075917 = K;
double r6075918 = 2.0;
double r6075919 = r6075917 / r6075918;
double r6075920 = cos(r6075919);
double r6075921 = r6075916 * r6075920;
double r6075922 = 1.0;
double r6075923 = U;
double r6075924 = r6075918 * r6075915;
double r6075925 = r6075924 * r6075920;
double r6075926 = r6075923 / r6075925;
double r6075927 = pow(r6075926, r6075918);
double r6075928 = r6075922 + r6075927;
double r6075929 = sqrt(r6075928);
double r6075930 = r6075921 * r6075929;
return r6075930;
}
double f(double J, double K, double U) {
double r6075931 = U;
double r6075932 = K;
double r6075933 = 2.0;
double r6075934 = r6075932 / r6075933;
double r6075935 = cos(r6075934);
double r6075936 = J;
double r6075937 = r6075935 * r6075936;
double r6075938 = r6075937 * r6075933;
double r6075939 = r6075931 / r6075938;
double r6075940 = 2.0;
double r6075941 = r6075933 / r6075940;
double r6075942 = pow(r6075939, r6075941);
double r6075943 = 1.0;
double r6075944 = sqrt(r6075943);
double r6075945 = hypot(r6075942, r6075944);
double r6075946 = -2.0;
double r6075947 = r6075946 * r6075937;
double r6075948 = r6075945 * r6075947;
return r6075948;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.0
Simplified18.0
rmApplied add-sqr-sqrt18.0
Applied sqr-pow18.0
Applied hypot-def8.1
Final simplification8.1
herbie shell --seed 2019169 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))