\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.0416216881156113 \cdot 10^{-187}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right)\\
\mathbf{elif}\;J \le -4.963799731811966 \cdot 10^{-224}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right)\\
\end{array}double f(double J, double K, double U) {
double r6208369 = -2.0;
double r6208370 = J;
double r6208371 = r6208369 * r6208370;
double r6208372 = K;
double r6208373 = 2.0;
double r6208374 = r6208372 / r6208373;
double r6208375 = cos(r6208374);
double r6208376 = r6208371 * r6208375;
double r6208377 = 1.0;
double r6208378 = U;
double r6208379 = r6208373 * r6208370;
double r6208380 = r6208379 * r6208375;
double r6208381 = r6208378 / r6208380;
double r6208382 = pow(r6208381, r6208373);
double r6208383 = r6208377 + r6208382;
double r6208384 = sqrt(r6208383);
double r6208385 = r6208376 * r6208384;
return r6208385;
}
double f(double J, double K, double U) {
double r6208386 = J;
double r6208387 = -1.0416216881156113e-187;
bool r6208388 = r6208386 <= r6208387;
double r6208389 = -2.0;
double r6208390 = r6208389 * r6208386;
double r6208391 = K;
double r6208392 = 2.0;
double r6208393 = r6208391 / r6208392;
double r6208394 = cos(r6208393);
double r6208395 = r6208390 * r6208394;
double r6208396 = 1.0;
double r6208397 = U;
double r6208398 = r6208394 * r6208392;
double r6208399 = r6208398 * r6208386;
double r6208400 = r6208397 / r6208399;
double r6208401 = hypot(r6208396, r6208400);
double r6208402 = r6208395 * r6208401;
double r6208403 = -4.963799731811966e-224;
bool r6208404 = r6208386 <= r6208403;
double r6208405 = -r6208397;
double r6208406 = r6208404 ? r6208405 : r6208402;
double r6208407 = r6208388 ? r6208402 : r6208406;
return r6208407;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.0416216881156113e-187 or -4.963799731811966e-224 < J Initial program 16.8
Simplified7.0
if -1.0416216881156113e-187 < J < -4.963799731811966e-224Initial program 34.6
Simplified18.3
Taylor expanded around inf 40.0
Simplified40.0
Final simplification7.9
herbie shell --seed 2019164 +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)))))