\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.0984957296591846 \cdot 10^{+254}:\\
\;\;\;\;\left(\sqrt{\mathsf{hypot}\left(1, \frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)}\right)} \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right)\right) \cdot \sqrt{\mathsf{hypot}\left(1, \frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)}\right)}\\
\mathbf{else}:\\
\;\;\;\;-U\\
\end{array}double f(double J, double K, double U) {
double r5141126 = -2.0;
double r5141127 = J;
double r5141128 = r5141126 * r5141127;
double r5141129 = K;
double r5141130 = 2.0;
double r5141131 = r5141129 / r5141130;
double r5141132 = cos(r5141131);
double r5141133 = r5141128 * r5141132;
double r5141134 = 1.0;
double r5141135 = U;
double r5141136 = r5141130 * r5141127;
double r5141137 = r5141136 * r5141132;
double r5141138 = r5141135 / r5141137;
double r5141139 = pow(r5141138, r5141130);
double r5141140 = r5141134 + r5141139;
double r5141141 = sqrt(r5141140);
double r5141142 = r5141133 * r5141141;
return r5141142;
}
double f(double J, double K, double U) {
double r5141143 = U;
double r5141144 = 1.0984957296591846e+254;
bool r5141145 = r5141143 <= r5141144;
double r5141146 = 1.0;
double r5141147 = J;
double r5141148 = K;
double r5141149 = 2.0;
double r5141150 = r5141148 / r5141149;
double r5141151 = cos(r5141150);
double r5141152 = r5141151 * r5141149;
double r5141153 = r5141147 * r5141152;
double r5141154 = r5141143 / r5141153;
double r5141155 = hypot(r5141146, r5141154);
double r5141156 = sqrt(r5141155);
double r5141157 = -2.0;
double r5141158 = r5141157 * r5141147;
double r5141159 = r5141158 * r5141151;
double r5141160 = r5141156 * r5141159;
double r5141161 = r5141160 * r5141156;
double r5141162 = -r5141143;
double r5141163 = r5141145 ? r5141161 : r5141162;
return r5141163;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if U < 1.0984957296591846e+254Initial program 15.4
Simplified6.8
rmApplied add-sqr-sqrt7.0
Applied associate-*l*7.0
if 1.0984957296591846e+254 < U Initial program 41.8
Simplified27.2
Taylor expanded around inf 32.4
Simplified32.4
Final simplification8.1
herbie shell --seed 2019163 +o rules:numerics
(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)))))