\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 r99642 = -2.0;
double r99643 = J;
double r99644 = r99642 * r99643;
double r99645 = K;
double r99646 = 2.0;
double r99647 = r99645 / r99646;
double r99648 = cos(r99647);
double r99649 = r99644 * r99648;
double r99650 = 1.0;
double r99651 = U;
double r99652 = r99646 * r99643;
double r99653 = r99652 * r99648;
double r99654 = r99651 / r99653;
double r99655 = pow(r99654, r99646);
double r99656 = r99650 + r99655;
double r99657 = sqrt(r99656);
double r99658 = r99649 * r99657;
return r99658;
}
double f(double J, double K, double U) {
double r99659 = -2.0;
double r99660 = J;
double r99661 = r99659 * r99660;
double r99662 = K;
double r99663 = 2.0;
double r99664 = r99662 / r99663;
double r99665 = cos(r99664);
double r99666 = r99661 * r99665;
double r99667 = 1.0;
double r99668 = sqrt(r99667);
double r99669 = U;
double r99670 = r99663 * r99660;
double r99671 = r99670 * r99665;
double r99672 = r99669 / r99671;
double r99673 = 2.0;
double r99674 = r99663 / r99673;
double r99675 = pow(r99672, r99674);
double r99676 = hypot(r99668, r99675);
double r99677 = r99666 * r99676;
return r99677;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.0
rmApplied sqr-pow18.0
Applied add-sqr-sqrt18.0
Applied hypot-def8.2
Final simplification8.2
herbie shell --seed 2019323 +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)))))