\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.273015951622964398513895289562959420814 \cdot 10^{-222}:\\
\;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\\
\mathbf{elif}\;J \le 3.849360312491251162092240151264481695399 \cdot 10^{-202}:\\
\;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\\
\end{array}double f(double J, double K, double U) {
double r6550535 = -2.0;
double r6550536 = J;
double r6550537 = r6550535 * r6550536;
double r6550538 = K;
double r6550539 = 2.0;
double r6550540 = r6550538 / r6550539;
double r6550541 = cos(r6550540);
double r6550542 = r6550537 * r6550541;
double r6550543 = 1.0;
double r6550544 = U;
double r6550545 = r6550539 * r6550536;
double r6550546 = r6550545 * r6550541;
double r6550547 = r6550544 / r6550546;
double r6550548 = pow(r6550547, r6550539);
double r6550549 = r6550543 + r6550548;
double r6550550 = sqrt(r6550549);
double r6550551 = r6550542 * r6550550;
return r6550551;
}
double f(double J, double K, double U) {
double r6550552 = J;
double r6550553 = -2.2730159516229644e-222;
bool r6550554 = r6550552 <= r6550553;
double r6550555 = U;
double r6550556 = K;
double r6550557 = 2.0;
double r6550558 = r6550556 / r6550557;
double r6550559 = cos(r6550558);
double r6550560 = r6550559 * r6550552;
double r6550561 = r6550560 * r6550557;
double r6550562 = r6550555 / r6550561;
double r6550563 = 2.0;
double r6550564 = r6550557 / r6550563;
double r6550565 = pow(r6550562, r6550564);
double r6550566 = 1.0;
double r6550567 = sqrt(r6550566);
double r6550568 = hypot(r6550565, r6550567);
double r6550569 = -2.0;
double r6550570 = r6550560 * r6550569;
double r6550571 = r6550568 * r6550570;
double r6550572 = 3.849360312491251e-202;
bool r6550573 = r6550552 <= r6550572;
double r6550574 = 0.25;
double r6550575 = sqrt(r6550574);
double r6550576 = r6550555 * r6550575;
double r6550577 = r6550569 * r6550576;
double r6550578 = r6550573 ? r6550577 : r6550571;
double r6550579 = r6550554 ? r6550571 : r6550578;
return r6550579;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -2.2730159516229644e-222 or 3.849360312491251e-202 < J Initial program 13.5
Simplified13.4
rmApplied add-sqr-sqrt13.4
Applied sqr-pow13.4
Applied hypot-def4.6
if -2.2730159516229644e-222 < J < 3.849360312491251e-202Initial program 42.3
Simplified42.3
Taylor expanded around inf 32.2
Final simplification8.7
herbie shell --seed 2019170 +o rules:numerics
(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)))))