\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 r160333 = -2.0;
double r160334 = J;
double r160335 = r160333 * r160334;
double r160336 = K;
double r160337 = 2.0;
double r160338 = r160336 / r160337;
double r160339 = cos(r160338);
double r160340 = r160335 * r160339;
double r160341 = 1.0;
double r160342 = U;
double r160343 = r160337 * r160334;
double r160344 = r160343 * r160339;
double r160345 = r160342 / r160344;
double r160346 = pow(r160345, r160337);
double r160347 = r160341 + r160346;
double r160348 = sqrt(r160347);
double r160349 = r160340 * r160348;
return r160349;
}
double f(double J, double K, double U) {
double r160350 = -2.0;
double r160351 = J;
double r160352 = r160350 * r160351;
double r160353 = K;
double r160354 = 2.0;
double r160355 = r160353 / r160354;
double r160356 = cos(r160355);
double r160357 = r160352 * r160356;
double r160358 = 1.0;
double r160359 = sqrt(r160358);
double r160360 = U;
double r160361 = r160354 * r160351;
double r160362 = r160361 * r160356;
double r160363 = r160360 / r160362;
double r160364 = 2.0;
double r160365 = r160354 / r160364;
double r160366 = pow(r160363, r160365);
double r160367 = hypot(r160359, r160366);
double r160368 = r160357 * r160367;
return r160368;
}



Bits error versus J



Bits error versus K



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