\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}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) = -\infty:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \frac{U \cdot \frac{\sqrt{0.25}}{\cos \left(0.5 \cdot K\right)}}{J}\right)\\
\mathbf{elif}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \le 1.676930854463059217104933833612143608877 \cdot 10^{308}:\\
\;\;\;\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{U}{J} \cdot \frac{\sqrt{0.25}}{\cos \left(0.5 \cdot K\right)}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r163512 = -2.0;
double r163513 = J;
double r163514 = r163512 * r163513;
double r163515 = K;
double r163516 = 2.0;
double r163517 = r163515 / r163516;
double r163518 = cos(r163517);
double r163519 = r163514 * r163518;
double r163520 = 1.0;
double r163521 = U;
double r163522 = r163516 * r163513;
double r163523 = r163522 * r163518;
double r163524 = r163521 / r163523;
double r163525 = pow(r163524, r163516);
double r163526 = r163520 + r163525;
double r163527 = sqrt(r163526);
double r163528 = r163519 * r163527;
return r163528;
}
double f(double J, double K, double U) {
double r163529 = U;
double r163530 = J;
double r163531 = 2.0;
double r163532 = r163530 * r163531;
double r163533 = K;
double r163534 = r163533 / r163531;
double r163535 = cos(r163534);
double r163536 = r163532 * r163535;
double r163537 = r163529 / r163536;
double r163538 = pow(r163537, r163531);
double r163539 = 1.0;
double r163540 = r163538 + r163539;
double r163541 = sqrt(r163540);
double r163542 = -2.0;
double r163543 = r163542 * r163530;
double r163544 = r163535 * r163543;
double r163545 = r163541 * r163544;
double r163546 = -inf.0;
bool r163547 = r163545 <= r163546;
double r163548 = 0.25;
double r163549 = sqrt(r163548);
double r163550 = 0.5;
double r163551 = r163550 * r163533;
double r163552 = cos(r163551);
double r163553 = r163549 / r163552;
double r163554 = r163529 * r163553;
double r163555 = r163554 / r163530;
double r163556 = r163535 * r163555;
double r163557 = r163543 * r163556;
double r163558 = 1.6769308544630592e+308;
bool r163559 = r163545 <= r163558;
double r163560 = r163529 / r163530;
double r163561 = r163560 * r163553;
double r163562 = r163561 * r163544;
double r163563 = r163559 ? r163545 : r163562;
double r163564 = r163547 ? r163557 : r163563;
return r163564;
}



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.0Initial program 64.0
rmApplied associate-*l*64.0
Simplified64.0
Taylor expanded around inf 46.2
Simplified46.2
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.6769308544630592e+308Initial program 0.1
if 1.6769308544630592e+308 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) Initial program 64.0
Taylor expanded around inf 46.4
Simplified46.5
Final simplification13.4
herbie shell --seed 2019174
(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)))))