\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 r311 = -2.0;
double r312 = J;
double r313 = r311 * r312;
double r314 = K;
double r315 = 2.0;
double r316 = r314 / r315;
double r317 = cos(r316);
double r318 = r313 * r317;
double r319 = 1.0;
double r320 = U;
double r321 = r315 * r312;
double r322 = r321 * r317;
double r323 = r320 / r322;
double r324 = pow(r323, r315);
double r325 = r319 + r324;
double r326 = sqrt(r325);
double r327 = r318 * r326;
return r327;
}
double f(double J, double K, double U) {
double r328 = -2.0;
double r329 = J;
double r330 = r328 * r329;
double r331 = K;
double r332 = 2.0;
double r333 = r331 / r332;
double r334 = cos(r333);
double r335 = r330 * r334;
double r336 = 1.0;
double r337 = sqrt(r336);
double r338 = U;
double r339 = r332 * r329;
double r340 = r339 * r334;
double r341 = r338 / r340;
double r342 = 2.0;
double r343 = r332 / r342;
double r344 = pow(r341, r343);
double r345 = hypot(r337, r344);
double r346 = r335 * r345;
return r346;
}



Bits error versus J



Bits error versus K



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