\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}\;J \le -1.14149938228696511 \cdot 10^{-223} \lor \neg \left(J \le 2.5022959607105417 \cdot 10^{-175}\right):\\
\;\;\;\;\left(\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}}\right) \cdot \sqrt{\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}}\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\right)\\
\end{array}double f(double J, double K, double U) {
double r175336 = -2.0;
double r175337 = J;
double r175338 = r175336 * r175337;
double r175339 = K;
double r175340 = 2.0;
double r175341 = r175339 / r175340;
double r175342 = cos(r175341);
double r175343 = r175338 * r175342;
double r175344 = 1.0;
double r175345 = U;
double r175346 = r175340 * r175337;
double r175347 = r175346 * r175342;
double r175348 = r175345 / r175347;
double r175349 = pow(r175348, r175340);
double r175350 = r175344 + r175349;
double r175351 = sqrt(r175350);
double r175352 = r175343 * r175351;
return r175352;
}
double f(double J, double K, double U) {
double r175353 = J;
double r175354 = -1.1414993822869651e-223;
bool r175355 = r175353 <= r175354;
double r175356 = 2.5022959607105417e-175;
bool r175357 = r175353 <= r175356;
double r175358 = !r175357;
bool r175359 = r175355 || r175358;
double r175360 = -2.0;
double r175361 = r175360 * r175353;
double r175362 = K;
double r175363 = 2.0;
double r175364 = r175362 / r175363;
double r175365 = cos(r175364);
double r175366 = r175361 * r175365;
double r175367 = 1.0;
double r175368 = U;
double r175369 = r175363 * r175353;
double r175370 = r175369 * r175365;
double r175371 = r175368 / r175370;
double r175372 = pow(r175371, r175363);
double r175373 = r175367 + r175372;
double r175374 = sqrt(r175373);
double r175375 = sqrt(r175374);
double r175376 = r175366 * r175375;
double r175377 = r175376 * r175375;
double r175378 = 0.25;
double r175379 = sqrt(r175378);
double r175380 = r175379 * r175368;
double r175381 = r175360 * r175380;
double r175382 = r175359 ? r175377 : r175381;
return r175382;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.1414993822869651e-223 or 2.5022959607105417e-175 < J Initial program 12.7
rmApplied add-sqr-sqrt12.7
Applied sqrt-prod12.7
Applied associate-*r*12.7
if -1.1414993822869651e-223 < J < 2.5022959607105417e-175Initial program 42.1
rmApplied associate-*l*42.1
Simplified42.1
Taylor expanded around 0 34.2
Final simplification16.5
herbie shell --seed 2020043
(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)))))