\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 r143364 = -2.0;
double r143365 = J;
double r143366 = r143364 * r143365;
double r143367 = K;
double r143368 = 2.0;
double r143369 = r143367 / r143368;
double r143370 = cos(r143369);
double r143371 = r143366 * r143370;
double r143372 = 1.0;
double r143373 = U;
double r143374 = r143368 * r143365;
double r143375 = r143374 * r143370;
double r143376 = r143373 / r143375;
double r143377 = pow(r143376, r143368);
double r143378 = r143372 + r143377;
double r143379 = sqrt(r143378);
double r143380 = r143371 * r143379;
return r143380;
}
double f(double J, double K, double U) {
double r143381 = -2.0;
double r143382 = J;
double r143383 = r143381 * r143382;
double r143384 = K;
double r143385 = 2.0;
double r143386 = r143384 / r143385;
double r143387 = cos(r143386);
double r143388 = r143383 * r143387;
double r143389 = 1.0;
double r143390 = sqrt(r143389);
double r143391 = U;
double r143392 = r143385 * r143382;
double r143393 = r143392 * r143387;
double r143394 = r143391 / r143393;
double r143395 = 2.0;
double r143396 = r143385 / r143395;
double r143397 = pow(r143394, r143396);
double r143398 = hypot(r143390, r143397);
double r143399 = r143388 * r143398;
return r143399;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.8
rmApplied sqr-pow17.8
Applied add-sqr-sqrt17.8
Applied hypot-def7.7
Final simplification7.7
herbie shell --seed 2019353 +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)))))