\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}}\begin{array}{l}
\mathbf{if}\;U \le 2.350079613172404302600140982159304734472 \cdot 10^{257}:\\
\;\;\;\;J \cdot \left(\mathsf{hypot}\left({\left(\frac{\frac{\frac{U}{J}}{\cos \left(\frac{K}{2}\right)}}{2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot -2\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(U \cdot \sqrt{0.25}\right) \cdot -2\\
\end{array}double f(double J, double K, double U) {
double r5865301 = -2.0;
double r5865302 = J;
double r5865303 = r5865301 * r5865302;
double r5865304 = K;
double r5865305 = 2.0;
double r5865306 = r5865304 / r5865305;
double r5865307 = cos(r5865306);
double r5865308 = r5865303 * r5865307;
double r5865309 = 1.0;
double r5865310 = U;
double r5865311 = r5865305 * r5865302;
double r5865312 = r5865311 * r5865307;
double r5865313 = r5865310 / r5865312;
double r5865314 = pow(r5865313, r5865305);
double r5865315 = r5865309 + r5865314;
double r5865316 = sqrt(r5865315);
double r5865317 = r5865308 * r5865316;
return r5865317;
}
double f(double J, double K, double U) {
double r5865318 = U;
double r5865319 = 2.3500796131724043e+257;
bool r5865320 = r5865318 <= r5865319;
double r5865321 = J;
double r5865322 = r5865318 / r5865321;
double r5865323 = K;
double r5865324 = 2.0;
double r5865325 = r5865323 / r5865324;
double r5865326 = cos(r5865325);
double r5865327 = r5865322 / r5865326;
double r5865328 = r5865327 / r5865324;
double r5865329 = 2.0;
double r5865330 = r5865324 / r5865329;
double r5865331 = pow(r5865328, r5865330);
double r5865332 = 1.0;
double r5865333 = sqrt(r5865332);
double r5865334 = hypot(r5865331, r5865333);
double r5865335 = -2.0;
double r5865336 = r5865326 * r5865335;
double r5865337 = r5865334 * r5865336;
double r5865338 = r5865321 * r5865337;
double r5865339 = 0.25;
double r5865340 = sqrt(r5865339);
double r5865341 = r5865318 * r5865340;
double r5865342 = r5865341 * r5865335;
double r5865343 = r5865320 ? r5865338 : r5865342;
return r5865343;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < 2.3500796131724043e+257Initial program 16.7
Simplified16.7
rmApplied add-sqr-sqrt16.7
Applied sqr-pow16.7
Applied hypot-def7.1
rmApplied add-sqr-sqrt7.2
Applied associate-*l*7.2
rmApplied *-un-lft-identity7.2
Applied associate-*l*7.2
Simplified7.1
if 2.3500796131724043e+257 < U Initial program 46.0
Simplified46.0
Taylor expanded around inf 33.5
Final simplification8.3
herbie shell --seed 2019171 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))