\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}}-2 \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right)\right)double f(double J, double K, double U) {
double r5742504 = -2.0;
double r5742505 = J;
double r5742506 = r5742504 * r5742505;
double r5742507 = K;
double r5742508 = 2.0;
double r5742509 = r5742507 / r5742508;
double r5742510 = cos(r5742509);
double r5742511 = r5742506 * r5742510;
double r5742512 = 1.0;
double r5742513 = U;
double r5742514 = r5742508 * r5742505;
double r5742515 = r5742514 * r5742510;
double r5742516 = r5742513 / r5742515;
double r5742517 = pow(r5742516, r5742508);
double r5742518 = r5742512 + r5742517;
double r5742519 = sqrt(r5742518);
double r5742520 = r5742511 * r5742519;
return r5742520;
}
double f(double J, double K, double U) {
double r5742521 = -2.0;
double r5742522 = K;
double r5742523 = 2.0;
double r5742524 = r5742522 / r5742523;
double r5742525 = cos(r5742524);
double r5742526 = J;
double r5742527 = r5742525 * r5742526;
double r5742528 = U;
double r5742529 = r5742527 * r5742523;
double r5742530 = r5742528 / r5742529;
double r5742531 = 2.0;
double r5742532 = r5742523 / r5742531;
double r5742533 = pow(r5742530, r5742532);
double r5742534 = 1.0;
double r5742535 = sqrt(r5742534);
double r5742536 = hypot(r5742533, r5742535);
double r5742537 = r5742527 * r5742536;
double r5742538 = r5742521 * r5742537;
return r5742538;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.0
Simplified18.0
rmApplied add-sqr-sqrt18.0
Applied sqr-pow18.0
Applied hypot-def7.8
Final simplification7.8
herbie shell --seed 2019200 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))