\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 -2.9650807448169428 \cdot 10^{-167}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{elif}\;J \le 1.149192901005293 \cdot 10^{-124}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\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 r4284373 = -2.0;
double r4284374 = J;
double r4284375 = r4284373 * r4284374;
double r4284376 = K;
double r4284377 = 2.0;
double r4284378 = r4284376 / r4284377;
double r4284379 = cos(r4284378);
double r4284380 = r4284375 * r4284379;
double r4284381 = 1.0;
double r4284382 = U;
double r4284383 = r4284377 * r4284374;
double r4284384 = r4284383 * r4284379;
double r4284385 = r4284382 / r4284384;
double r4284386 = pow(r4284385, r4284377);
double r4284387 = r4284381 + r4284386;
double r4284388 = sqrt(r4284387);
double r4284389 = r4284380 * r4284388;
return r4284389;
}
double f(double J, double K, double U) {
double r4284390 = J;
double r4284391 = -2.9650807448169428e-167;
bool r4284392 = r4284390 <= r4284391;
double r4284393 = 1.0;
double r4284394 = U;
double r4284395 = r4284390 + r4284390;
double r4284396 = K;
double r4284397 = 2.0;
double r4284398 = r4284396 / r4284397;
double r4284399 = cos(r4284398);
double r4284400 = r4284395 * r4284399;
double r4284401 = r4284394 / r4284400;
double r4284402 = r4284401 * r4284401;
double r4284403 = r4284393 + r4284402;
double r4284404 = sqrt(r4284403);
double r4284405 = -2.0;
double r4284406 = r4284405 * r4284390;
double r4284407 = r4284399 * r4284406;
double r4284408 = r4284404 * r4284407;
double r4284409 = 1.149192901005293e-124;
bool r4284410 = r4284390 <= r4284409;
double r4284411 = -r4284394;
double r4284412 = r4284410 ? r4284411 : r4284408;
double r4284413 = r4284392 ? r4284408 : r4284412;
return r4284413;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -2.9650807448169428e-167 or 1.149192901005293e-124 < J Initial program 9.4
Simplified9.4
if -2.9650807448169428e-167 < J < 1.149192901005293e-124Initial program 37.9
Simplified37.9
Taylor expanded around -inf 35.7
Simplified35.7
Final simplification16.3
herbie shell --seed 2019133
(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)))))