\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 r208247 = -2.0;
double r208248 = J;
double r208249 = r208247 * r208248;
double r208250 = K;
double r208251 = 2.0;
double r208252 = r208250 / r208251;
double r208253 = cos(r208252);
double r208254 = r208249 * r208253;
double r208255 = 1.0;
double r208256 = U;
double r208257 = r208251 * r208248;
double r208258 = r208257 * r208253;
double r208259 = r208256 / r208258;
double r208260 = pow(r208259, r208251);
double r208261 = r208255 + r208260;
double r208262 = sqrt(r208261);
double r208263 = r208254 * r208262;
return r208263;
}
double f(double J, double K, double U) {
double r208264 = -2.0;
double r208265 = J;
double r208266 = r208264 * r208265;
double r208267 = K;
double r208268 = 2.0;
double r208269 = r208267 / r208268;
double r208270 = cos(r208269);
double r208271 = r208266 * r208270;
double r208272 = 1.0;
double r208273 = sqrt(r208272);
double r208274 = U;
double r208275 = r208268 * r208265;
double r208276 = r208275 * r208270;
double r208277 = r208274 / r208276;
double r208278 = 2.0;
double r208279 = r208268 / r208278;
double r208280 = pow(r208277, r208279);
double r208281 = hypot(r208273, r208280);
double r208282 = r208271 * r208281;
return r208282;
}



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