\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.68532756159565347 \cdot 10^{306}\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 r160617 = -2.0;
double r160618 = J;
double r160619 = r160617 * r160618;
double r160620 = K;
double r160621 = 2.0;
double r160622 = r160620 / r160621;
double r160623 = cos(r160622);
double r160624 = r160619 * r160623;
double r160625 = 1.0;
double r160626 = U;
double r160627 = r160621 * r160618;
double r160628 = r160627 * r160623;
double r160629 = r160626 / r160628;
double r160630 = pow(r160629, r160621);
double r160631 = r160625 + r160630;
double r160632 = sqrt(r160631);
double r160633 = r160624 * r160632;
return r160633;
}
double f(double J, double K, double U) {
double r160634 = -2.0;
double r160635 = J;
double r160636 = r160634 * r160635;
double r160637 = K;
double r160638 = 2.0;
double r160639 = r160637 / r160638;
double r160640 = cos(r160639);
double r160641 = r160636 * r160640;
double r160642 = 1.0;
double r160643 = U;
double r160644 = r160638 * r160635;
double r160645 = r160644 * r160640;
double r160646 = r160643 / r160645;
double r160647 = pow(r160646, r160638);
double r160648 = r160642 + r160647;
double r160649 = sqrt(r160648);
double r160650 = r160641 * r160649;
double r160651 = -inf.0;
bool r160652 = r160650 <= r160651;
double r160653 = 1.6853275615956535e+306;
bool r160654 = r160650 <= r160653;
double r160655 = !r160654;
bool r160656 = r160652 || r160655;
double r160657 = 0.25;
double r160658 = sqrt(r160657);
double r160659 = r160658 * r160643;
double r160660 = 0.5;
double r160661 = r160660 * r160637;
double r160662 = cos(r160661);
double r160663 = r160635 * r160662;
double r160664 = r160659 / r160663;
double r160665 = r160641 * r160664;
double r160666 = r160656 ? r160665 : r160650;
return r160666;
}



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.6853275615956535e+306 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) Initial program 63.6
Taylor expanded around inf 46.3
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.6853275615956535e+306Initial program 0.1
Final simplification13.1
herbie shell --seed 2020056
(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)))))