\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.000305540524894 \cdot 10^{-282}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\\
\mathbf{elif}\;J \le -1.2687631742535287 \cdot 10^{-307}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\\
\end{array}double f(double J, double K, double U) {
double r2232122 = -2.0;
double r2232123 = J;
double r2232124 = r2232122 * r2232123;
double r2232125 = K;
double r2232126 = 2.0;
double r2232127 = r2232125 / r2232126;
double r2232128 = cos(r2232127);
double r2232129 = r2232124 * r2232128;
double r2232130 = 1.0;
double r2232131 = U;
double r2232132 = r2232126 * r2232123;
double r2232133 = r2232132 * r2232128;
double r2232134 = r2232131 / r2232133;
double r2232135 = pow(r2232134, r2232126);
double r2232136 = r2232130 + r2232135;
double r2232137 = sqrt(r2232136);
double r2232138 = r2232129 * r2232137;
return r2232138;
}
double f(double J, double K, double U) {
double r2232139 = J;
double r2232140 = -5.000305540524894e-282;
bool r2232141 = r2232139 <= r2232140;
double r2232142 = -2.0;
double r2232143 = r2232142 * r2232139;
double r2232144 = K;
double r2232145 = 2.0;
double r2232146 = r2232144 / r2232145;
double r2232147 = cos(r2232146);
double r2232148 = r2232143 * r2232147;
double r2232149 = 1.0;
double r2232150 = U;
double r2232151 = r2232145 * r2232139;
double r2232152 = r2232147 * r2232151;
double r2232153 = r2232150 / r2232152;
double r2232154 = hypot(r2232149, r2232153);
double r2232155 = r2232148 * r2232154;
double r2232156 = -1.2687631742535287e-307;
bool r2232157 = r2232139 <= r2232156;
double r2232158 = -r2232150;
double r2232159 = r2232157 ? r2232158 : r2232155;
double r2232160 = r2232141 ? r2232155 : r2232159;
return r2232160;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -5.000305540524894e-282 or -1.2687631742535287e-307 < J Initial program 17.2
Simplified7.6
if -5.000305540524894e-282 < J < -1.2687631742535287e-307Initial program 46.1
Simplified31.5
rmApplied add-cube-cbrt31.7
Applied associate-*l*31.7
Taylor expanded around -inf 23.7
Simplified23.7
Final simplification8.0
herbie shell --seed 2019153 +o rules:numerics
(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)))))