\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(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{\frac{U}{J \cdot 2}}{\cos \left(\frac{K}{2}\right)}\right)\right) \cdot \left(J \cdot -2\right)double f(double J, double K, double U) {
double r5002264 = -2.0;
double r5002265 = J;
double r5002266 = r5002264 * r5002265;
double r5002267 = K;
double r5002268 = 2.0;
double r5002269 = r5002267 / r5002268;
double r5002270 = cos(r5002269);
double r5002271 = r5002266 * r5002270;
double r5002272 = 1.0;
double r5002273 = U;
double r5002274 = r5002268 * r5002265;
double r5002275 = r5002274 * r5002270;
double r5002276 = r5002273 / r5002275;
double r5002277 = pow(r5002276, r5002268);
double r5002278 = r5002272 + r5002277;
double r5002279 = sqrt(r5002278);
double r5002280 = r5002271 * r5002279;
return r5002280;
}
double f(double J, double K, double U) {
double r5002281 = K;
double r5002282 = 2.0;
double r5002283 = r5002281 / r5002282;
double r5002284 = cos(r5002283);
double r5002285 = 1.0;
double r5002286 = U;
double r5002287 = J;
double r5002288 = r5002287 * r5002282;
double r5002289 = r5002286 / r5002288;
double r5002290 = r5002289 / r5002284;
double r5002291 = hypot(r5002285, r5002290);
double r5002292 = r5002284 * r5002291;
double r5002293 = -2.0;
double r5002294 = r5002287 * r5002293;
double r5002295 = r5002292 * r5002294;
return r5002295;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.5
Simplified7.7
rmApplied associate-*r*7.8
rmApplied associate-/r*7.7
Final simplification7.7
herbie shell --seed 2019151 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))