\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.9478612451442132 \cdot 10^{-147}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\
\mathbf{elif}\;J \le 5.648842308741205 \cdot 10^{-186}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\
\end{array}double f(double J, double K, double U) {
double r44669679 = -2.0;
double r44669680 = J;
double r44669681 = r44669679 * r44669680;
double r44669682 = K;
double r44669683 = 2.0;
double r44669684 = r44669682 / r44669683;
double r44669685 = cos(r44669684);
double r44669686 = r44669681 * r44669685;
double r44669687 = 1.0;
double r44669688 = U;
double r44669689 = r44669683 * r44669680;
double r44669690 = r44669689 * r44669685;
double r44669691 = r44669688 / r44669690;
double r44669692 = pow(r44669691, r44669683);
double r44669693 = r44669687 + r44669692;
double r44669694 = sqrt(r44669693);
double r44669695 = r44669686 * r44669694;
return r44669695;
}
double f(double J, double K, double U) {
double r44669696 = J;
double r44669697 = -1.9478612451442132e-147;
bool r44669698 = r44669696 <= r44669697;
double r44669699 = K;
double r44669700 = 2.0;
double r44669701 = r44669699 / r44669700;
double r44669702 = cos(r44669701);
double r44669703 = r44669702 * r44669696;
double r44669704 = -2.0;
double r44669705 = 1.0;
double r44669706 = U;
double r44669707 = r44669700 * r44669703;
double r44669708 = r44669706 / r44669707;
double r44669709 = r44669708 * r44669708;
double r44669710 = r44669705 + r44669709;
double r44669711 = sqrt(r44669710);
double r44669712 = r44669704 * r44669711;
double r44669713 = r44669703 * r44669712;
double r44669714 = 5.648842308741205e-186;
bool r44669715 = r44669696 <= r44669714;
double r44669716 = -r44669706;
double r44669717 = r44669715 ? r44669716 : r44669713;
double r44669718 = r44669698 ? r44669713 : r44669717;
return r44669718;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.9478612451442132e-147 or 5.648842308741205e-186 < J Initial program 10.3
Simplified10.3
if -1.9478612451442132e-147 < J < 5.648842308741205e-186Initial program 37.7
Simplified37.7
rmApplied add-cube-cbrt37.9
Applied associate-*l*37.9
rmApplied pow1/344.2
Taylor expanded around -inf 34.1
Simplified34.1
Final simplification16.0
herbie shell --seed 2019125
(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)))))