\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 r149127 = -2.0;
double r149128 = J;
double r149129 = r149127 * r149128;
double r149130 = K;
double r149131 = 2.0;
double r149132 = r149130 / r149131;
double r149133 = cos(r149132);
double r149134 = r149129 * r149133;
double r149135 = 1.0;
double r149136 = U;
double r149137 = r149131 * r149128;
double r149138 = r149137 * r149133;
double r149139 = r149136 / r149138;
double r149140 = pow(r149139, r149131);
double r149141 = r149135 + r149140;
double r149142 = sqrt(r149141);
double r149143 = r149134 * r149142;
return r149143;
}
double f(double J, double K, double U) {
double r149144 = -2.0;
double r149145 = J;
double r149146 = r149144 * r149145;
double r149147 = K;
double r149148 = 2.0;
double r149149 = r149147 / r149148;
double r149150 = cos(r149149);
double r149151 = r149146 * r149150;
double r149152 = 1.0;
double r149153 = sqrt(r149152);
double r149154 = U;
double r149155 = r149148 * r149145;
double r149156 = r149155 * r149150;
double r149157 = r149154 / r149156;
double r149158 = 2.0;
double r149159 = r149148 / r149158;
double r149160 = pow(r149157, r149159);
double r149161 = hypot(r149153, r149160);
double r149162 = r149151 * r149161;
return r149162;
}



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 2020002 +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)))))