\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 r128235 = -2.0;
double r128236 = J;
double r128237 = r128235 * r128236;
double r128238 = K;
double r128239 = 2.0;
double r128240 = r128238 / r128239;
double r128241 = cos(r128240);
double r128242 = r128237 * r128241;
double r128243 = 1.0;
double r128244 = U;
double r128245 = r128239 * r128236;
double r128246 = r128245 * r128241;
double r128247 = r128244 / r128246;
double r128248 = pow(r128247, r128239);
double r128249 = r128243 + r128248;
double r128250 = sqrt(r128249);
double r128251 = r128242 * r128250;
return r128251;
}
double f(double J, double K, double U) {
double r128252 = -2.0;
double r128253 = J;
double r128254 = r128252 * r128253;
double r128255 = K;
double r128256 = 2.0;
double r128257 = r128255 / r128256;
double r128258 = cos(r128257);
double r128259 = r128254 * r128258;
double r128260 = 1.0;
double r128261 = sqrt(r128260);
double r128262 = U;
double r128263 = r128256 * r128253;
double r128264 = r128263 * r128258;
double r128265 = r128262 / r128264;
double r128266 = 2.0;
double r128267 = r128256 / r128266;
double r128268 = pow(r128265, r128267);
double r128269 = hypot(r128261, r128268);
double r128270 = r128259 * r128269;
return r128270;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.1
rmApplied sqr-pow18.1
Applied add-sqr-sqrt18.1
Applied hypot-def7.9
Final simplification7.9
herbie shell --seed 2019235 +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)))))