\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.7519438251008617 \cdot 10^{-206}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \cdot \sqrt{\frac{U}{\left(\cos \left(\frac{1}{2} \cdot K\right) \cdot J\right) \cdot 2} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} + 1}\\
\mathbf{elif}\;J \le 1.920732154664696 \cdot 10^{-170}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \cdot \sqrt{\frac{U}{\left(\cos \left(\frac{1}{2} \cdot K\right) \cdot J\right) \cdot 2} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} + 1}\\
\end{array}double f(double J, double K, double U) {
double r6200455 = -2.0;
double r6200456 = J;
double r6200457 = r6200455 * r6200456;
double r6200458 = K;
double r6200459 = 2.0;
double r6200460 = r6200458 / r6200459;
double r6200461 = cos(r6200460);
double r6200462 = r6200457 * r6200461;
double r6200463 = 1.0;
double r6200464 = U;
double r6200465 = r6200459 * r6200456;
double r6200466 = r6200465 * r6200461;
double r6200467 = r6200464 / r6200466;
double r6200468 = pow(r6200467, r6200459);
double r6200469 = r6200463 + r6200468;
double r6200470 = sqrt(r6200469);
double r6200471 = r6200462 * r6200470;
return r6200471;
}
double f(double J, double K, double U) {
double r6200472 = J;
double r6200473 = -1.7519438251008617e-206;
bool r6200474 = r6200472 <= r6200473;
double r6200475 = K;
double r6200476 = 2.0;
double r6200477 = r6200475 / r6200476;
double r6200478 = cos(r6200477);
double r6200479 = -2.0;
double r6200480 = r6200479 * r6200472;
double r6200481 = r6200478 * r6200480;
double r6200482 = U;
double r6200483 = 0.5;
double r6200484 = r6200483 * r6200475;
double r6200485 = cos(r6200484);
double r6200486 = r6200485 * r6200472;
double r6200487 = r6200486 * r6200476;
double r6200488 = r6200482 / r6200487;
double r6200489 = r6200476 * r6200472;
double r6200490 = r6200478 * r6200489;
double r6200491 = r6200482 / r6200490;
double r6200492 = r6200488 * r6200491;
double r6200493 = 1.0;
double r6200494 = r6200492 + r6200493;
double r6200495 = sqrt(r6200494);
double r6200496 = r6200481 * r6200495;
double r6200497 = 1.920732154664696e-170;
bool r6200498 = r6200472 <= r6200497;
double r6200499 = -r6200482;
double r6200500 = r6200498 ? r6200499 : r6200496;
double r6200501 = r6200474 ? r6200496 : r6200500;
return r6200501;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.7519438251008617e-206 or 1.920732154664696e-170 < J Initial program 11.5
Simplified11.5
Taylor expanded around inf 11.5
if -1.7519438251008617e-206 < J < 1.920732154664696e-170Initial program 40.1
Simplified40.1
Taylor expanded around inf 40.1
Taylor expanded around -inf 33.0
Simplified33.0
Final simplification15.6
herbie shell --seed 2019149
(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)))))