\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}\;\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}} = -\infty \lor \neg \left(\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}} \le 1.0665921477558243 \cdot 10^{304}\right):\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\
\mathbf{else}:\\
\;\;\;\;\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}}\\
\end{array}double f(double J, double K, double U) {
double r247243 = -2.0;
double r247244 = J;
double r247245 = r247243 * r247244;
double r247246 = K;
double r247247 = 2.0;
double r247248 = r247246 / r247247;
double r247249 = cos(r247248);
double r247250 = r247245 * r247249;
double r247251 = 1.0;
double r247252 = U;
double r247253 = r247247 * r247244;
double r247254 = r247253 * r247249;
double r247255 = r247252 / r247254;
double r247256 = pow(r247255, r247247);
double r247257 = r247251 + r247256;
double r247258 = sqrt(r247257);
double r247259 = r247250 * r247258;
return r247259;
}
double f(double J, double K, double U) {
double r247260 = -2.0;
double r247261 = J;
double r247262 = r247260 * r247261;
double r247263 = K;
double r247264 = 2.0;
double r247265 = r247263 / r247264;
double r247266 = cos(r247265);
double r247267 = r247262 * r247266;
double r247268 = 1.0;
double r247269 = U;
double r247270 = r247264 * r247261;
double r247271 = r247270 * r247266;
double r247272 = r247269 / r247271;
double r247273 = pow(r247272, r247264);
double r247274 = r247268 + r247273;
double r247275 = sqrt(r247274);
double r247276 = r247267 * r247275;
double r247277 = -inf.0;
bool r247278 = r247276 <= r247277;
double r247279 = 1.0665921477558243e+304;
bool r247280 = r247276 <= r247279;
double r247281 = !r247280;
bool r247282 = r247278 || r247281;
double r247283 = 0.25;
double r247284 = sqrt(r247283);
double r247285 = r247284 * r247269;
double r247286 = 0.5;
double r247287 = r247286 * r247263;
double r247288 = cos(r247287);
double r247289 = r247261 * r247288;
double r247290 = r247285 / r247289;
double r247291 = r247267 * r247290;
double r247292 = r247282 ? r247291 : r247276;
return r247292;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < -inf.0 or 1.0665921477558243e+304 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) Initial program 62.7
Taylor expanded around inf 45.6
if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 1.0665921477558243e+304Initial program 0.1
Final simplification12.7
herbie shell --seed 2020047
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
:precision binary64
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))