\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 r129419 = -2.0;
double r129420 = J;
double r129421 = r129419 * r129420;
double r129422 = K;
double r129423 = 2.0;
double r129424 = r129422 / r129423;
double r129425 = cos(r129424);
double r129426 = r129421 * r129425;
double r129427 = 1.0;
double r129428 = U;
double r129429 = r129423 * r129420;
double r129430 = r129429 * r129425;
double r129431 = r129428 / r129430;
double r129432 = pow(r129431, r129423);
double r129433 = r129427 + r129432;
double r129434 = sqrt(r129433);
double r129435 = r129426 * r129434;
return r129435;
}
double f(double J, double K, double U) {
double r129436 = -2.0;
double r129437 = J;
double r129438 = r129436 * r129437;
double r129439 = K;
double r129440 = 2.0;
double r129441 = r129439 / r129440;
double r129442 = cos(r129441);
double r129443 = r129438 * r129442;
double r129444 = 1.0;
double r129445 = sqrt(r129444);
double r129446 = U;
double r129447 = r129440 * r129437;
double r129448 = r129447 * r129442;
double r129449 = r129446 / r129448;
double r129450 = 2.0;
double r129451 = r129440 / r129450;
double r129452 = pow(r129449, r129451);
double r129453 = hypot(r129445, r129452);
double r129454 = r129443 * r129453;
return r129454;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.5
rmApplied sqr-pow18.5
Applied add-sqr-sqrt18.5
Applied hypot-def7.9
Final simplification7.9
herbie shell --seed 2019303 +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)))))