\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 1.534064784477960541165649773606574633982 \cdot 10^{257}:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r5094619 = -2.0;
double r5094620 = J;
double r5094621 = r5094619 * r5094620;
double r5094622 = K;
double r5094623 = 2.0;
double r5094624 = r5094622 / r5094623;
double r5094625 = cos(r5094624);
double r5094626 = r5094621 * r5094625;
double r5094627 = 1.0;
double r5094628 = U;
double r5094629 = r5094623 * r5094620;
double r5094630 = r5094629 * r5094625;
double r5094631 = r5094628 / r5094630;
double r5094632 = pow(r5094631, r5094623);
double r5094633 = r5094627 + r5094632;
double r5094634 = sqrt(r5094633);
double r5094635 = r5094626 * r5094634;
return r5094635;
}
double f(double J, double K, double U) {
double r5094636 = U;
double r5094637 = 1.5340647844779605e+257;
bool r5094638 = r5094636 <= r5094637;
double r5094639 = -2.0;
double r5094640 = J;
double r5094641 = r5094639 * r5094640;
double r5094642 = K;
double r5094643 = 2.0;
double r5094644 = r5094642 / r5094643;
double r5094645 = cos(r5094644);
double r5094646 = 1.0;
double r5094647 = r5094643 * r5094640;
double r5094648 = r5094636 / r5094647;
double r5094649 = r5094648 / r5094645;
double r5094650 = pow(r5094649, r5094643);
double r5094651 = r5094646 + r5094650;
double r5094652 = sqrt(r5094651);
double r5094653 = r5094645 * r5094652;
double r5094654 = r5094641 * r5094653;
double r5094655 = 0.25;
double r5094656 = sqrt(r5094655);
double r5094657 = r5094656 * r5094636;
double r5094658 = 0.5;
double r5094659 = r5094658 * r5094642;
double r5094660 = cos(r5094659);
double r5094661 = r5094640 * r5094660;
double r5094662 = r5094657 / r5094661;
double r5094663 = r5094645 * r5094641;
double r5094664 = r5094662 * r5094663;
double r5094665 = r5094638 ? r5094654 : r5094664;
return r5094665;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < 1.5340647844779605e+257Initial program 16.7
rmApplied associate-*l*16.7
rmApplied *-un-lft-identity16.7
Applied pow-unpow16.7
Simplified16.7
if 1.5340647844779605e+257 < U Initial program 46.0
Taylor expanded around inf 47.7
Final simplification18.0
herbie shell --seed 2019171
(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)))))