\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 r209365 = -2.0;
double r209366 = J;
double r209367 = r209365 * r209366;
double r209368 = K;
double r209369 = 2.0;
double r209370 = r209368 / r209369;
double r209371 = cos(r209370);
double r209372 = r209367 * r209371;
double r209373 = 1.0;
double r209374 = U;
double r209375 = r209369 * r209366;
double r209376 = r209375 * r209371;
double r209377 = r209374 / r209376;
double r209378 = pow(r209377, r209369);
double r209379 = r209373 + r209378;
double r209380 = sqrt(r209379);
double r209381 = r209372 * r209380;
return r209381;
}
double f(double J, double K, double U) {
double r209382 = -2.0;
double r209383 = J;
double r209384 = r209382 * r209383;
double r209385 = K;
double r209386 = 2.0;
double r209387 = r209385 / r209386;
double r209388 = cos(r209387);
double r209389 = r209384 * r209388;
double r209390 = 1.0;
double r209391 = sqrt(r209390);
double r209392 = U;
double r209393 = r209386 * r209383;
double r209394 = r209393 * r209388;
double r209395 = r209392 / r209394;
double r209396 = 2.0;
double r209397 = r209386 / r209396;
double r209398 = pow(r209395, r209397);
double r209399 = hypot(r209391, r209398);
double r209400 = r209389 * r209399;
return r209400;
}



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 2020060 +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)))))