\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 r2117213 = -2.0;
double r2117214 = J;
double r2117215 = r2117213 * r2117214;
double r2117216 = K;
double r2117217 = 2.0;
double r2117218 = r2117216 / r2117217;
double r2117219 = cos(r2117218);
double r2117220 = r2117215 * r2117219;
double r2117221 = 1.0;
double r2117222 = U;
double r2117223 = r2117217 * r2117214;
double r2117224 = r2117223 * r2117219;
double r2117225 = r2117222 / r2117224;
double r2117226 = pow(r2117225, r2117217);
double r2117227 = r2117221 + r2117226;
double r2117228 = sqrt(r2117227);
double r2117229 = r2117220 * r2117228;
return r2117229;
}
double f(double J, double K, double U) {
double r2117230 = J;
double r2117231 = -5.000305540524894e-282;
bool r2117232 = r2117230 <= r2117231;
double r2117233 = -2.0;
double r2117234 = r2117233 * r2117230;
double r2117235 = K;
double r2117236 = 2.0;
double r2117237 = r2117235 / r2117236;
double r2117238 = cos(r2117237);
double r2117239 = r2117234 * r2117238;
double r2117240 = 1.0;
double r2117241 = U;
double r2117242 = r2117236 * r2117230;
double r2117243 = r2117238 * r2117242;
double r2117244 = r2117241 / r2117243;
double r2117245 = hypot(r2117240, r2117244);
double r2117246 = r2117239 * r2117245;
double r2117247 = -1.2687631742535287e-307;
bool r2117248 = r2117230 <= r2117247;
double r2117249 = -r2117241;
double r2117250 = r2117248 ? r2117249 : r2117246;
double r2117251 = r2117232 ? r2117246 : r2117250;
return r2117251;
}



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
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)))))