\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 r197388 = -2.0;
double r197389 = J;
double r197390 = r197388 * r197389;
double r197391 = K;
double r197392 = 2.0;
double r197393 = r197391 / r197392;
double r197394 = cos(r197393);
double r197395 = r197390 * r197394;
double r197396 = 1.0;
double r197397 = U;
double r197398 = r197392 * r197389;
double r197399 = r197398 * r197394;
double r197400 = r197397 / r197399;
double r197401 = pow(r197400, r197392);
double r197402 = r197396 + r197401;
double r197403 = sqrt(r197402);
double r197404 = r197395 * r197403;
return r197404;
}
double f(double J, double K, double U) {
double r197405 = -2.0;
double r197406 = J;
double r197407 = r197405 * r197406;
double r197408 = K;
double r197409 = 2.0;
double r197410 = r197408 / r197409;
double r197411 = cos(r197410);
double r197412 = r197407 * r197411;
double r197413 = 1.0;
double r197414 = sqrt(r197413);
double r197415 = U;
double r197416 = r197409 * r197406;
double r197417 = r197416 * r197411;
double r197418 = r197415 / r197417;
double r197419 = 2.0;
double r197420 = r197409 / r197419;
double r197421 = pow(r197418, r197420);
double r197422 = hypot(r197414, r197421);
double r197423 = r197412 * r197422;
return r197423;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.6
rmApplied sqr-pow18.6
Applied add-sqr-sqrt18.6
Applied hypot-def8.6
Final simplification8.6
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)))))