\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 -8.069925597012031999055507457126900702342 \cdot 10^{-197}:\\
\;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\
\mathbf{elif}\;J \le 1.427887367569266326768928126263287999121 \cdot 10^{-201}:\\
\;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\
\end{array}double f(double J, double K, double U) {
double r4597819 = -2.0;
double r4597820 = J;
double r4597821 = r4597819 * r4597820;
double r4597822 = K;
double r4597823 = 2.0;
double r4597824 = r4597822 / r4597823;
double r4597825 = cos(r4597824);
double r4597826 = r4597821 * r4597825;
double r4597827 = 1.0;
double r4597828 = U;
double r4597829 = r4597823 * r4597820;
double r4597830 = r4597829 * r4597825;
double r4597831 = r4597828 / r4597830;
double r4597832 = pow(r4597831, r4597823);
double r4597833 = r4597827 + r4597832;
double r4597834 = sqrt(r4597833);
double r4597835 = r4597826 * r4597834;
return r4597835;
}
double f(double J, double K, double U) {
double r4597836 = J;
double r4597837 = -8.069925597012032e-197;
bool r4597838 = r4597836 <= r4597837;
double r4597839 = K;
double r4597840 = 0.5;
double r4597841 = r4597839 * r4597840;
double r4597842 = cos(r4597841);
double r4597843 = r4597836 * r4597842;
double r4597844 = -2.0;
double r4597845 = r4597843 * r4597844;
double r4597846 = 1.0;
double r4597847 = U;
double r4597848 = 2.0;
double r4597849 = r4597839 / r4597848;
double r4597850 = cos(r4597849);
double r4597851 = r4597850 * r4597836;
double r4597852 = r4597851 * r4597848;
double r4597853 = r4597847 / r4597852;
double r4597854 = pow(r4597853, r4597848);
double r4597855 = r4597846 + r4597854;
double r4597856 = sqrt(r4597855);
double r4597857 = r4597845 * r4597856;
double r4597858 = 1.4278873675692663e-201;
bool r4597859 = r4597836 <= r4597858;
double r4597860 = 0.25;
double r4597861 = sqrt(r4597860);
double r4597862 = r4597847 * r4597861;
double r4597863 = r4597844 * r4597862;
double r4597864 = r4597859 ? r4597863 : r4597857;
double r4597865 = r4597838 ? r4597857 : r4597864;
return r4597865;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -8.069925597012032e-197 or 1.4278873675692663e-201 < J Initial program 12.9
Simplified12.8
Taylor expanded around inf 12.8
if -8.069925597012032e-197 < J < 1.4278873675692663e-201Initial program 41.7
Simplified41.7
Taylor expanded around inf 32.8
Final simplification16.3
herbie shell --seed 2019170
(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)))))