\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 1.1426674860052404 \cdot 10^{-212}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right)\right)\\
\mathbf{elif}\;J \le 1.289623709276361 \cdot 10^{-130}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r12512164 = -2.0;
double r12512165 = J;
double r12512166 = r12512164 * r12512165;
double r12512167 = K;
double r12512168 = 2.0;
double r12512169 = r12512167 / r12512168;
double r12512170 = cos(r12512169);
double r12512171 = r12512166 * r12512170;
double r12512172 = 1.0;
double r12512173 = U;
double r12512174 = r12512168 * r12512165;
double r12512175 = r12512174 * r12512170;
double r12512176 = r12512173 / r12512175;
double r12512177 = pow(r12512176, r12512168);
double r12512178 = r12512172 + r12512177;
double r12512179 = sqrt(r12512178);
double r12512180 = r12512171 * r12512179;
return r12512180;
}
double f(double J, double K, double U) {
double r12512181 = J;
double r12512182 = 1.1426674860052404e-212;
bool r12512183 = r12512181 <= r12512182;
double r12512184 = -2.0;
double r12512185 = r12512184 * r12512181;
double r12512186 = K;
double r12512187 = 2.0;
double r12512188 = r12512186 / r12512187;
double r12512189 = cos(r12512188);
double r12512190 = r12512185 * r12512189;
double r12512191 = 1.0;
double r12512192 = U;
double r12512193 = r12512187 * r12512189;
double r12512194 = r12512193 * r12512181;
double r12512195 = r12512192 / r12512194;
double r12512196 = hypot(r12512191, r12512195);
double r12512197 = r12512190 * r12512196;
double r12512198 = 1.289623709276361e-130;
bool r12512199 = r12512181 <= r12512198;
double r12512200 = -r12512192;
double r12512201 = r12512199 ? r12512200 : r12512197;
double r12512202 = r12512183 ? r12512197 : r12512201;
return r12512202;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < 1.1426674860052404e-212 or 1.289623709276361e-130 < J Initial program 15.8
Simplified7.3
if 1.1426674860052404e-212 < J < 1.289623709276361e-130Initial program 32.0
Simplified17.3
Taylor expanded around inf 38.2
Simplified38.2
Final simplification9.3
herbie shell --seed 2019120 +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)))))