\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 r208621 = -2.0;
double r208622 = J;
double r208623 = r208621 * r208622;
double r208624 = K;
double r208625 = 2.0;
double r208626 = r208624 / r208625;
double r208627 = cos(r208626);
double r208628 = r208623 * r208627;
double r208629 = 1.0;
double r208630 = U;
double r208631 = r208625 * r208622;
double r208632 = r208631 * r208627;
double r208633 = r208630 / r208632;
double r208634 = pow(r208633, r208625);
double r208635 = r208629 + r208634;
double r208636 = sqrt(r208635);
double r208637 = r208628 * r208636;
return r208637;
}
double f(double J, double K, double U) {
double r208638 = -2.0;
double r208639 = J;
double r208640 = r208638 * r208639;
double r208641 = K;
double r208642 = 2.0;
double r208643 = r208641 / r208642;
double r208644 = cos(r208643);
double r208645 = r208640 * r208644;
double r208646 = 1.0;
double r208647 = sqrt(r208646);
double r208648 = U;
double r208649 = r208642 * r208639;
double r208650 = r208649 * r208644;
double r208651 = r208648 / r208650;
double r208652 = 2.0;
double r208653 = r208642 / r208652;
double r208654 = pow(r208651, r208653);
double r208655 = hypot(r208647, r208654);
double r208656 = r208645 * r208655;
return r208656;
}



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-def7.9
Final simplification7.9
herbie shell --seed 2019344 +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)))))