\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 r325514 = -2.0;
double r325515 = J;
double r325516 = r325514 * r325515;
double r325517 = K;
double r325518 = 2.0;
double r325519 = r325517 / r325518;
double r325520 = cos(r325519);
double r325521 = r325516 * r325520;
double r325522 = 1.0;
double r325523 = U;
double r325524 = r325518 * r325515;
double r325525 = r325524 * r325520;
double r325526 = r325523 / r325525;
double r325527 = pow(r325526, r325518);
double r325528 = r325522 + r325527;
double r325529 = sqrt(r325528);
double r325530 = r325521 * r325529;
return r325530;
}
double f(double J, double K, double U) {
double r325531 = -2.0;
double r325532 = J;
double r325533 = r325531 * r325532;
double r325534 = K;
double r325535 = 2.0;
double r325536 = r325534 / r325535;
double r325537 = cos(r325536);
double r325538 = r325533 * r325537;
double r325539 = 1.0;
double r325540 = sqrt(r325539);
double r325541 = U;
double r325542 = r325535 * r325532;
double r325543 = r325542 * r325537;
double r325544 = r325541 / r325543;
double r325545 = 2.0;
double r325546 = r325535 / r325545;
double r325547 = pow(r325544, r325546);
double r325548 = hypot(r325540, r325547);
double r325549 = r325538 * r325548;
return r325549;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.5
rmApplied sqr-pow17.5
Applied add-sqr-sqrt17.5
Applied hypot-def8.0
Final simplification8.0
herbie shell --seed 2020045 +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)))))