\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 r126307 = -2.0;
double r126308 = J;
double r126309 = r126307 * r126308;
double r126310 = K;
double r126311 = 2.0;
double r126312 = r126310 / r126311;
double r126313 = cos(r126312);
double r126314 = r126309 * r126313;
double r126315 = 1.0;
double r126316 = U;
double r126317 = r126311 * r126308;
double r126318 = r126317 * r126313;
double r126319 = r126316 / r126318;
double r126320 = pow(r126319, r126311);
double r126321 = r126315 + r126320;
double r126322 = sqrt(r126321);
double r126323 = r126314 * r126322;
return r126323;
}
double f(double J, double K, double U) {
double r126324 = -2.0;
double r126325 = J;
double r126326 = r126324 * r126325;
double r126327 = K;
double r126328 = 2.0;
double r126329 = r126327 / r126328;
double r126330 = cos(r126329);
double r126331 = r126326 * r126330;
double r126332 = 1.0;
double r126333 = sqrt(r126332);
double r126334 = U;
double r126335 = r126328 * r126325;
double r126336 = r126335 * r126330;
double r126337 = r126334 / r126336;
double r126338 = 2.0;
double r126339 = r126328 / r126338;
double r126340 = pow(r126337, r126339);
double r126341 = hypot(r126333, r126340);
double r126342 = r126331 * r126341;
return r126342;
}



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-def8.1
Final simplification8.1
herbie shell --seed 2019306 +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)))))