\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 r144529 = -2.0;
double r144530 = J;
double r144531 = r144529 * r144530;
double r144532 = K;
double r144533 = 2.0;
double r144534 = r144532 / r144533;
double r144535 = cos(r144534);
double r144536 = r144531 * r144535;
double r144537 = 1.0;
double r144538 = U;
double r144539 = r144533 * r144530;
double r144540 = r144539 * r144535;
double r144541 = r144538 / r144540;
double r144542 = pow(r144541, r144533);
double r144543 = r144537 + r144542;
double r144544 = sqrt(r144543);
double r144545 = r144536 * r144544;
return r144545;
}
double f(double J, double K, double U) {
double r144546 = -2.0;
double r144547 = J;
double r144548 = r144546 * r144547;
double r144549 = K;
double r144550 = 2.0;
double r144551 = r144549 / r144550;
double r144552 = cos(r144551);
double r144553 = r144548 * r144552;
double r144554 = 1.0;
double r144555 = sqrt(r144554);
double r144556 = U;
double r144557 = r144550 * r144547;
double r144558 = r144557 * r144552;
double r144559 = r144556 / r144558;
double r144560 = 2.0;
double r144561 = r144550 / r144560;
double r144562 = pow(r144559, r144561);
double r144563 = hypot(r144555, r144562);
double r144564 = r144553 * r144563;
return r144564;
}



Bits error versus J



Bits error versus K



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