\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 -5.675372485901490572720424474717990752987 \cdot 10^{-306} \lor \neg \left(J \le 6.995469865281344460219534865255688195257 \cdot 10^{-177}\right):\\
\;\;\;\;J \cdot \left(\mathsf{hypot}\left({\left(\frac{\frac{U}{J}}{\cos \left(\frac{K}{2}\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(-2 \cdot \cos \left(\frac{K}{2}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\
\end{array}double f(double J, double K, double U) {
double r114652 = -2.0;
double r114653 = J;
double r114654 = r114652 * r114653;
double r114655 = K;
double r114656 = 2.0;
double r114657 = r114655 / r114656;
double r114658 = cos(r114657);
double r114659 = r114654 * r114658;
double r114660 = 1.0;
double r114661 = U;
double r114662 = r114656 * r114653;
double r114663 = r114662 * r114658;
double r114664 = r114661 / r114663;
double r114665 = pow(r114664, r114656);
double r114666 = r114660 + r114665;
double r114667 = sqrt(r114666);
double r114668 = r114659 * r114667;
return r114668;
}
double f(double J, double K, double U) {
double r114669 = J;
double r114670 = -5.6753724859014906e-306;
bool r114671 = r114669 <= r114670;
double r114672 = 6.9954698652813445e-177;
bool r114673 = r114669 <= r114672;
double r114674 = !r114673;
bool r114675 = r114671 || r114674;
double r114676 = U;
double r114677 = r114676 / r114669;
double r114678 = K;
double r114679 = 2.0;
double r114680 = r114678 / r114679;
double r114681 = cos(r114680);
double r114682 = r114681 * r114679;
double r114683 = r114677 / r114682;
double r114684 = 2.0;
double r114685 = r114679 / r114684;
double r114686 = pow(r114683, r114685);
double r114687 = 1.0;
double r114688 = sqrt(r114687);
double r114689 = hypot(r114686, r114688);
double r114690 = -2.0;
double r114691 = r114690 * r114681;
double r114692 = r114689 * r114691;
double r114693 = r114669 * r114692;
double r114694 = 0.25;
double r114695 = sqrt(r114694);
double r114696 = r114676 * r114695;
double r114697 = r114690 * r114696;
double r114698 = r114675 ? r114693 : r114697;
return r114698;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -5.6753724859014906e-306 or 6.9954698652813445e-177 < J Initial program 15.6
Simplified15.6
rmApplied add-sqr-sqrt15.6
Applied sqr-pow15.6
Applied hypot-def6.1
rmApplied pow16.1
Applied pow16.1
Applied pow16.1
Applied pow16.1
Applied pow-prod-down6.1
Applied pow-prod-down6.1
Applied pow-prod-down6.1
Simplified6.2
rmApplied associate-*r*6.1
Simplified6.1
if -5.6753724859014906e-306 < J < 6.9954698652813445e-177Initial program 42.8
Simplified42.8
Taylor expanded around inf 34.4
Final simplification9.3
herbie shell --seed 2019196 +o rules:numerics
(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)))))