\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 r216550 = -2.0;
double r216551 = J;
double r216552 = r216550 * r216551;
double r216553 = K;
double r216554 = 2.0;
double r216555 = r216553 / r216554;
double r216556 = cos(r216555);
double r216557 = r216552 * r216556;
double r216558 = 1.0;
double r216559 = U;
double r216560 = r216554 * r216551;
double r216561 = r216560 * r216556;
double r216562 = r216559 / r216561;
double r216563 = pow(r216562, r216554);
double r216564 = r216558 + r216563;
double r216565 = sqrt(r216564);
double r216566 = r216557 * r216565;
return r216566;
}
double f(double J, double K, double U) {
double r216567 = -2.0;
double r216568 = J;
double r216569 = r216567 * r216568;
double r216570 = K;
double r216571 = 2.0;
double r216572 = r216570 / r216571;
double r216573 = cos(r216572);
double r216574 = r216569 * r216573;
double r216575 = 1.0;
double r216576 = sqrt(r216575);
double r216577 = U;
double r216578 = r216571 * r216568;
double r216579 = r216578 * r216573;
double r216580 = r216577 / r216579;
double r216581 = 2.0;
double r216582 = r216571 / r216581;
double r216583 = pow(r216580, r216582);
double r216584 = hypot(r216576, r216583);
double r216585 = r216574 * r216584;
return r216585;
}



Bits error versus J



Bits error versus K



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