\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 r147997 = -2.0;
double r147998 = J;
double r147999 = r147997 * r147998;
double r148000 = K;
double r148001 = 2.0;
double r148002 = r148000 / r148001;
double r148003 = cos(r148002);
double r148004 = r147999 * r148003;
double r148005 = 1.0;
double r148006 = U;
double r148007 = r148001 * r147998;
double r148008 = r148007 * r148003;
double r148009 = r148006 / r148008;
double r148010 = pow(r148009, r148001);
double r148011 = r148005 + r148010;
double r148012 = sqrt(r148011);
double r148013 = r148004 * r148012;
return r148013;
}
double f(double J, double K, double U) {
double r148014 = -2.0;
double r148015 = J;
double r148016 = r148014 * r148015;
double r148017 = K;
double r148018 = 2.0;
double r148019 = r148017 / r148018;
double r148020 = cos(r148019);
double r148021 = r148016 * r148020;
double r148022 = 1.0;
double r148023 = sqrt(r148022);
double r148024 = U;
double r148025 = r148018 * r148015;
double r148026 = r148025 * r148020;
double r148027 = r148024 / r148026;
double r148028 = 2.0;
double r148029 = r148018 / r148028;
double r148030 = pow(r148027, r148029);
double r148031 = hypot(r148023, r148030);
double r148032 = r148021 * r148031;
return r148032;
}



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-def8.1
Final simplification8.1
herbie shell --seed 2019199 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))