\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.1661330982400293 \cdot 10^{-176}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{elif}\;J \le -3.513211526895522 \cdot 10^{-238}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\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 r4210682 = -2.0;
double r4210683 = J;
double r4210684 = r4210682 * r4210683;
double r4210685 = K;
double r4210686 = 2.0;
double r4210687 = r4210685 / r4210686;
double r4210688 = cos(r4210687);
double r4210689 = r4210684 * r4210688;
double r4210690 = 1.0;
double r4210691 = U;
double r4210692 = r4210686 * r4210683;
double r4210693 = r4210692 * r4210688;
double r4210694 = r4210691 / r4210693;
double r4210695 = pow(r4210694, r4210686);
double r4210696 = r4210690 + r4210695;
double r4210697 = sqrt(r4210696);
double r4210698 = r4210689 * r4210697;
return r4210698;
}
double f(double J, double K, double U) {
double r4210699 = J;
double r4210700 = -2.1661330982400293e-176;
bool r4210701 = r4210699 <= r4210700;
double r4210702 = 1.0;
double r4210703 = U;
double r4210704 = K;
double r4210705 = 2.0;
double r4210706 = r4210704 / r4210705;
double r4210707 = cos(r4210706);
double r4210708 = r4210705 * r4210699;
double r4210709 = r4210707 * r4210708;
double r4210710 = r4210703 / r4210709;
double r4210711 = r4210710 * r4210710;
double r4210712 = r4210702 + r4210711;
double r4210713 = sqrt(r4210712);
double r4210714 = -2.0;
double r4210715 = r4210714 * r4210699;
double r4210716 = r4210707 * r4210715;
double r4210717 = r4210713 * r4210716;
double r4210718 = -3.513211526895522e-238;
bool r4210719 = r4210699 <= r4210718;
double r4210720 = -r4210703;
double r4210721 = r4210719 ? r4210720 : r4210717;
double r4210722 = r4210701 ? r4210717 : r4210721;
return r4210722;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -2.1661330982400293e-176 or -3.513211526895522e-238 < J Initial program 16.3
Simplified16.3
if -2.1661330982400293e-176 < J < -3.513211526895522e-238Initial program 33.4
Simplified33.4
Taylor expanded around -inf 37.1
Simplified37.1
Final simplification17.3
herbie shell --seed 2019142
(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)))))