\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 r140127 = -2.0;
double r140128 = J;
double r140129 = r140127 * r140128;
double r140130 = K;
double r140131 = 2.0;
double r140132 = r140130 / r140131;
double r140133 = cos(r140132);
double r140134 = r140129 * r140133;
double r140135 = 1.0;
double r140136 = U;
double r140137 = r140131 * r140128;
double r140138 = r140137 * r140133;
double r140139 = r140136 / r140138;
double r140140 = pow(r140139, r140131);
double r140141 = r140135 + r140140;
double r140142 = sqrt(r140141);
double r140143 = r140134 * r140142;
return r140143;
}
double f(double J, double K, double U) {
double r140144 = -2.0;
double r140145 = J;
double r140146 = r140144 * r140145;
double r140147 = K;
double r140148 = 2.0;
double r140149 = r140147 / r140148;
double r140150 = cos(r140149);
double r140151 = r140146 * r140150;
double r140152 = 1.0;
double r140153 = sqrt(r140152);
double r140154 = U;
double r140155 = r140148 * r140145;
double r140156 = r140155 * r140150;
double r140157 = r140154 / r140156;
double r140158 = 2.0;
double r140159 = r140148 / r140158;
double r140160 = pow(r140157, r140159);
double r140161 = hypot(r140153, r140160);
double r140162 = r140151 * r140161;
return r140162;
}



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.0
Final simplification8.0
herbie shell --seed 2019304 +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)))))