\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 r160953 = -2.0;
double r160954 = J;
double r160955 = r160953 * r160954;
double r160956 = K;
double r160957 = 2.0;
double r160958 = r160956 / r160957;
double r160959 = cos(r160958);
double r160960 = r160955 * r160959;
double r160961 = 1.0;
double r160962 = U;
double r160963 = r160957 * r160954;
double r160964 = r160963 * r160959;
double r160965 = r160962 / r160964;
double r160966 = pow(r160965, r160957);
double r160967 = r160961 + r160966;
double r160968 = sqrt(r160967);
double r160969 = r160960 * r160968;
return r160969;
}
double f(double J, double K, double U) {
double r160970 = -2.0;
double r160971 = J;
double r160972 = r160970 * r160971;
double r160973 = K;
double r160974 = 2.0;
double r160975 = r160973 / r160974;
double r160976 = cos(r160975);
double r160977 = r160972 * r160976;
double r160978 = 1.0;
double r160979 = sqrt(r160978);
double r160980 = U;
double r160981 = r160974 * r160971;
double r160982 = r160981 * r160976;
double r160983 = r160980 / r160982;
double r160984 = 2.0;
double r160985 = r160974 / r160984;
double r160986 = pow(r160983, r160985);
double r160987 = hypot(r160979, r160986);
double r160988 = r160977 * r160987;
return r160988;
}



Bits error versus J



Bits error versus K



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