\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}}\sqrt{\sqrt{\mathsf{hypot}\left(1, \frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)}} \cdot \left(\sqrt{\sqrt{\mathsf{hypot}\left(1, \frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)}} \cdot \left(\sqrt{\mathsf{hypot}\left(1, \frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)} \cdot \left(\left(J \cdot -2\right) \cdot \cos \left(\frac{K}{2}\right)\right)\right)\right)double f(double J, double K, double U) {
double r5007203 = -2.0;
double r5007204 = J;
double r5007205 = r5007203 * r5007204;
double r5007206 = K;
double r5007207 = 2.0;
double r5007208 = r5007206 / r5007207;
double r5007209 = cos(r5007208);
double r5007210 = r5007205 * r5007209;
double r5007211 = 1.0;
double r5007212 = U;
double r5007213 = r5007207 * r5007204;
double r5007214 = r5007213 * r5007209;
double r5007215 = r5007212 / r5007214;
double r5007216 = pow(r5007215, r5007207);
double r5007217 = r5007211 + r5007216;
double r5007218 = sqrt(r5007217);
double r5007219 = r5007210 * r5007218;
return r5007219;
}
double f(double J, double K, double U) {
double r5007220 = 1.0;
double r5007221 = U;
double r5007222 = J;
double r5007223 = 2.0;
double r5007224 = K;
double r5007225 = r5007224 / r5007223;
double r5007226 = cos(r5007225);
double r5007227 = r5007223 * r5007226;
double r5007228 = r5007222 * r5007227;
double r5007229 = r5007221 / r5007228;
double r5007230 = hypot(r5007220, r5007229);
double r5007231 = sqrt(r5007230);
double r5007232 = sqrt(r5007231);
double r5007233 = -2.0;
double r5007234 = r5007222 * r5007233;
double r5007235 = r5007234 * r5007226;
double r5007236 = r5007231 * r5007235;
double r5007237 = r5007232 * r5007236;
double r5007238 = r5007232 * r5007237;
return r5007238;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 16.9
Simplified7.9
rmApplied add-sqr-sqrt8.0
Applied associate-*l*8.0
rmApplied add-sqr-sqrt8.0
Applied sqrt-prod8.1
Applied associate-*l*8.1
Final simplification8.1
herbie shell --seed 2019168 +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)))))