\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 r178810 = -2.0;
double r178811 = J;
double r178812 = r178810 * r178811;
double r178813 = K;
double r178814 = 2.0;
double r178815 = r178813 / r178814;
double r178816 = cos(r178815);
double r178817 = r178812 * r178816;
double r178818 = 1.0;
double r178819 = U;
double r178820 = r178814 * r178811;
double r178821 = r178820 * r178816;
double r178822 = r178819 / r178821;
double r178823 = pow(r178822, r178814);
double r178824 = r178818 + r178823;
double r178825 = sqrt(r178824);
double r178826 = r178817 * r178825;
return r178826;
}
double f(double J, double K, double U) {
double r178827 = -2.0;
double r178828 = J;
double r178829 = r178827 * r178828;
double r178830 = K;
double r178831 = 2.0;
double r178832 = r178830 / r178831;
double r178833 = cos(r178832);
double r178834 = r178829 * r178833;
double r178835 = 1.0;
double r178836 = sqrt(r178835);
double r178837 = U;
double r178838 = r178831 * r178828;
double r178839 = r178838 * r178833;
double r178840 = r178837 / r178839;
double r178841 = 2.0;
double r178842 = r178831 / r178841;
double r178843 = pow(r178840, r178842);
double r178844 = hypot(r178836, r178843);
double r178845 = r178834 * r178844;
return r178845;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.4
rmApplied sqr-pow18.4
Applied add-sqr-sqrt18.4
Applied hypot-def8.2
Final simplification8.2
herbie shell --seed 2020057 +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)))))