\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 r216762 = -2.0;
double r216763 = J;
double r216764 = r216762 * r216763;
double r216765 = K;
double r216766 = 2.0;
double r216767 = r216765 / r216766;
double r216768 = cos(r216767);
double r216769 = r216764 * r216768;
double r216770 = 1.0;
double r216771 = U;
double r216772 = r216766 * r216763;
double r216773 = r216772 * r216768;
double r216774 = r216771 / r216773;
double r216775 = pow(r216774, r216766);
double r216776 = r216770 + r216775;
double r216777 = sqrt(r216776);
double r216778 = r216769 * r216777;
return r216778;
}
double f(double J, double K, double U) {
double r216779 = -2.0;
double r216780 = J;
double r216781 = r216779 * r216780;
double r216782 = K;
double r216783 = 2.0;
double r216784 = r216782 / r216783;
double r216785 = cos(r216784);
double r216786 = r216781 * r216785;
double r216787 = 1.0;
double r216788 = sqrt(r216787);
double r216789 = U;
double r216790 = r216783 * r216780;
double r216791 = r216790 * r216785;
double r216792 = r216789 / r216791;
double r216793 = 2.0;
double r216794 = r216783 / r216793;
double r216795 = pow(r216792, r216794);
double r216796 = hypot(r216788, r216795);
double r216797 = r216786 * r216796;
return r216797;
}



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