\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 -4.840558415743229 \cdot 10^{-282}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\right) \cdot \left(J \cdot -2\right)\\
\mathbf{elif}\;J \le 7.865937310037316 \cdot 10^{-210}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\right) \cdot \left(J \cdot -2\right)\\
\end{array}double f(double J, double K, double U) {
double r2071205 = -2.0;
double r2071206 = J;
double r2071207 = r2071205 * r2071206;
double r2071208 = K;
double r2071209 = 2.0;
double r2071210 = r2071208 / r2071209;
double r2071211 = cos(r2071210);
double r2071212 = r2071207 * r2071211;
double r2071213 = 1.0;
double r2071214 = U;
double r2071215 = r2071209 * r2071206;
double r2071216 = r2071215 * r2071211;
double r2071217 = r2071214 / r2071216;
double r2071218 = pow(r2071217, r2071209);
double r2071219 = r2071213 + r2071218;
double r2071220 = sqrt(r2071219);
double r2071221 = r2071212 * r2071220;
return r2071221;
}
double f(double J, double K, double U) {
double r2071222 = J;
double r2071223 = -4.840558415743229e-282;
bool r2071224 = r2071222 <= r2071223;
double r2071225 = K;
double r2071226 = 2.0;
double r2071227 = r2071225 / r2071226;
double r2071228 = cos(r2071227);
double r2071229 = 1.0;
double r2071230 = U;
double r2071231 = r2071226 * r2071222;
double r2071232 = r2071228 * r2071231;
double r2071233 = r2071230 / r2071232;
double r2071234 = hypot(r2071229, r2071233);
double r2071235 = r2071228 * r2071234;
double r2071236 = -2.0;
double r2071237 = r2071222 * r2071236;
double r2071238 = r2071235 * r2071237;
double r2071239 = 7.865937310037316e-210;
bool r2071240 = r2071222 <= r2071239;
double r2071241 = -r2071230;
double r2071242 = r2071240 ? r2071241 : r2071238;
double r2071243 = r2071224 ? r2071238 : r2071242;
return r2071243;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -4.840558415743229e-282 or 7.865937310037316e-210 < J Initial program 14.7
Simplified5.6
rmApplied associate-*r*5.6
if -4.840558415743229e-282 < J < 7.865937310037316e-210Initial program 42.3
Simplified26.2
Taylor expanded around inf 32.9
Simplified32.9
Final simplification8.5
herbie shell --seed 2019154 +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)))))