\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 r216791 = -2.0;
double r216792 = J;
double r216793 = r216791 * r216792;
double r216794 = K;
double r216795 = 2.0;
double r216796 = r216794 / r216795;
double r216797 = cos(r216796);
double r216798 = r216793 * r216797;
double r216799 = 1.0;
double r216800 = U;
double r216801 = r216795 * r216792;
double r216802 = r216801 * r216797;
double r216803 = r216800 / r216802;
double r216804 = pow(r216803, r216795);
double r216805 = r216799 + r216804;
double r216806 = sqrt(r216805);
double r216807 = r216798 * r216806;
return r216807;
}
double f(double J, double K, double U) {
double r216808 = -2.0;
double r216809 = J;
double r216810 = r216808 * r216809;
double r216811 = K;
double r216812 = 2.0;
double r216813 = r216811 / r216812;
double r216814 = cos(r216813);
double r216815 = r216810 * r216814;
double r216816 = 1.0;
double r216817 = sqrt(r216816);
double r216818 = U;
double r216819 = r216812 * r216809;
double r216820 = r216819 * r216814;
double r216821 = r216818 / r216820;
double r216822 = 2.0;
double r216823 = r216812 / r216822;
double r216824 = pow(r216821, r216823);
double r216825 = hypot(r216817, r216824);
double r216826 = r216815 * r216825;
return r216826;
}



Bits error versus J



Bits error versus K



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