\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 r156378 = -2.0;
double r156379 = J;
double r156380 = r156378 * r156379;
double r156381 = K;
double r156382 = 2.0;
double r156383 = r156381 / r156382;
double r156384 = cos(r156383);
double r156385 = r156380 * r156384;
double r156386 = 1.0;
double r156387 = U;
double r156388 = r156382 * r156379;
double r156389 = r156388 * r156384;
double r156390 = r156387 / r156389;
double r156391 = pow(r156390, r156382);
double r156392 = r156386 + r156391;
double r156393 = sqrt(r156392);
double r156394 = r156385 * r156393;
return r156394;
}
double f(double J, double K, double U) {
double r156395 = -2.0;
double r156396 = J;
double r156397 = r156395 * r156396;
double r156398 = K;
double r156399 = 2.0;
double r156400 = r156398 / r156399;
double r156401 = cos(r156400);
double r156402 = r156397 * r156401;
double r156403 = 1.0;
double r156404 = sqrt(r156403);
double r156405 = U;
double r156406 = r156399 * r156396;
double r156407 = r156406 * r156401;
double r156408 = r156405 / r156407;
double r156409 = 2.0;
double r156410 = r156399 / r156409;
double r156411 = pow(r156408, r156410);
double r156412 = hypot(r156404, r156411);
double r156413 = r156402 * r156412;
return r156413;
}



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