\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{\frac{\frac{U}{\cos \left(\frac{K}{2}\right)}}{2 \cdot J} \cdot \frac{\frac{U}{\cos \left(\frac{K}{2}\right)}}{2 \cdot J} + 1} \cdot \left(J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot -2\right)\right)double f(double J, double K, double U) {
double r4252110 = -2.0;
double r4252111 = J;
double r4252112 = r4252110 * r4252111;
double r4252113 = K;
double r4252114 = 2.0;
double r4252115 = r4252113 / r4252114;
double r4252116 = cos(r4252115);
double r4252117 = r4252112 * r4252116;
double r4252118 = 1.0;
double r4252119 = U;
double r4252120 = r4252114 * r4252111;
double r4252121 = r4252120 * r4252116;
double r4252122 = r4252119 / r4252121;
double r4252123 = pow(r4252122, r4252114);
double r4252124 = r4252118 + r4252123;
double r4252125 = sqrt(r4252124);
double r4252126 = r4252117 * r4252125;
return r4252126;
}
double f(double J, double K, double U) {
double r4252127 = U;
double r4252128 = K;
double r4252129 = 2.0;
double r4252130 = r4252128 / r4252129;
double r4252131 = cos(r4252130);
double r4252132 = r4252127 / r4252131;
double r4252133 = J;
double r4252134 = r4252129 * r4252133;
double r4252135 = r4252132 / r4252134;
double r4252136 = r4252135 * r4252135;
double r4252137 = 1.0;
double r4252138 = r4252136 + r4252137;
double r4252139 = sqrt(r4252138);
double r4252140 = -2.0;
double r4252141 = r4252131 * r4252140;
double r4252142 = r4252133 * r4252141;
double r4252143 = r4252139 * r4252142;
return r4252143;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 16.9
Simplified17.0
Final simplification17.0
herbie shell --seed 2019168
(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)))))