\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 r141684 = -2.0;
double r141685 = J;
double r141686 = r141684 * r141685;
double r141687 = K;
double r141688 = 2.0;
double r141689 = r141687 / r141688;
double r141690 = cos(r141689);
double r141691 = r141686 * r141690;
double r141692 = 1.0;
double r141693 = U;
double r141694 = r141688 * r141685;
double r141695 = r141694 * r141690;
double r141696 = r141693 / r141695;
double r141697 = pow(r141696, r141688);
double r141698 = r141692 + r141697;
double r141699 = sqrt(r141698);
double r141700 = r141691 * r141699;
return r141700;
}
double f(double J, double K, double U) {
double r141701 = -2.0;
double r141702 = J;
double r141703 = r141701 * r141702;
double r141704 = K;
double r141705 = 2.0;
double r141706 = r141704 / r141705;
double r141707 = cos(r141706);
double r141708 = r141703 * r141707;
double r141709 = 1.0;
double r141710 = sqrt(r141709);
double r141711 = U;
double r141712 = r141705 * r141702;
double r141713 = r141712 * r141707;
double r141714 = r141711 / r141713;
double r141715 = 2.0;
double r141716 = r141705 / r141715;
double r141717 = pow(r141714, r141716);
double r141718 = hypot(r141710, r141717);
double r141719 = r141708 * r141718;
return r141719;
}



Bits error versus J



Bits error versus K



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