\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 r138157 = -2.0;
double r138158 = J;
double r138159 = r138157 * r138158;
double r138160 = K;
double r138161 = 2.0;
double r138162 = r138160 / r138161;
double r138163 = cos(r138162);
double r138164 = r138159 * r138163;
double r138165 = 1.0;
double r138166 = U;
double r138167 = r138161 * r138158;
double r138168 = r138167 * r138163;
double r138169 = r138166 / r138168;
double r138170 = pow(r138169, r138161);
double r138171 = r138165 + r138170;
double r138172 = sqrt(r138171);
double r138173 = r138164 * r138172;
return r138173;
}
double f(double J, double K, double U) {
double r138174 = -2.0;
double r138175 = J;
double r138176 = r138174 * r138175;
double r138177 = K;
double r138178 = 2.0;
double r138179 = r138177 / r138178;
double r138180 = cos(r138179);
double r138181 = r138176 * r138180;
double r138182 = 1.0;
double r138183 = sqrt(r138182);
double r138184 = U;
double r138185 = r138178 * r138175;
double r138186 = r138185 * r138180;
double r138187 = r138184 / r138186;
double r138188 = 2.0;
double r138189 = r138178 / r138188;
double r138190 = pow(r138187, r138189);
double r138191 = hypot(r138183, r138190);
double r138192 = r138181 * r138191;
return r138192;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.6
rmApplied sqr-pow17.6
Applied add-sqr-sqrt17.6
Applied hypot-def8.0
Final simplification8.0
herbie shell --seed 2019212 +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)))))