\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 r128463 = -2.0;
double r128464 = J;
double r128465 = r128463 * r128464;
double r128466 = K;
double r128467 = 2.0;
double r128468 = r128466 / r128467;
double r128469 = cos(r128468);
double r128470 = r128465 * r128469;
double r128471 = 1.0;
double r128472 = U;
double r128473 = r128467 * r128464;
double r128474 = r128473 * r128469;
double r128475 = r128472 / r128474;
double r128476 = pow(r128475, r128467);
double r128477 = r128471 + r128476;
double r128478 = sqrt(r128477);
double r128479 = r128470 * r128478;
return r128479;
}
double f(double J, double K, double U) {
double r128480 = -2.0;
double r128481 = J;
double r128482 = r128480 * r128481;
double r128483 = K;
double r128484 = 2.0;
double r128485 = r128483 / r128484;
double r128486 = cos(r128485);
double r128487 = r128482 * r128486;
double r128488 = 1.0;
double r128489 = sqrt(r128488);
double r128490 = U;
double r128491 = r128484 * r128481;
double r128492 = r128491 * r128486;
double r128493 = r128490 / r128492;
double r128494 = 2.0;
double r128495 = r128484 / r128494;
double r128496 = pow(r128493, r128495);
double r128497 = hypot(r128489, r128496);
double r128498 = r128487 * r128497;
return r128498;
}



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)))))