\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.792215731407936430111562169642558319512 \cdot 10^{308}\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(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}}\right) \cdot {\left(1 + \left(\sqrt[3]{{\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)}^{\left(\frac{1}{4}\right)}\\
\end{array}double f(double J, double K, double U) {
double r130008 = -2.0;
double r130009 = J;
double r130010 = r130008 * r130009;
double r130011 = K;
double r130012 = 2.0;
double r130013 = r130011 / r130012;
double r130014 = cos(r130013);
double r130015 = r130010 * r130014;
double r130016 = 1.0;
double r130017 = U;
double r130018 = r130012 * r130009;
double r130019 = r130018 * r130014;
double r130020 = r130017 / r130019;
double r130021 = pow(r130020, r130012);
double r130022 = r130016 + r130021;
double r130023 = sqrt(r130022);
double r130024 = r130015 * r130023;
return r130024;
}
double f(double J, double K, double U) {
double r130025 = -2.0;
double r130026 = J;
double r130027 = r130025 * r130026;
double r130028 = K;
double r130029 = 2.0;
double r130030 = r130028 / r130029;
double r130031 = cos(r130030);
double r130032 = r130027 * r130031;
double r130033 = 1.0;
double r130034 = U;
double r130035 = r130029 * r130026;
double r130036 = r130035 * r130031;
double r130037 = r130034 / r130036;
double r130038 = pow(r130037, r130029);
double r130039 = r130033 + r130038;
double r130040 = sqrt(r130039);
double r130041 = r130032 * r130040;
double r130042 = -inf.0;
bool r130043 = r130041 <= r130042;
double r130044 = 1.7922157314079364e+308;
bool r130045 = r130041 <= r130044;
double r130046 = !r130045;
bool r130047 = r130043 || r130046;
double r130048 = 0.25;
double r130049 = sqrt(r130048);
double r130050 = r130049 * r130034;
double r130051 = 0.5;
double r130052 = r130051 * r130028;
double r130053 = cos(r130052);
double r130054 = r130026 * r130053;
double r130055 = r130050 / r130054;
double r130056 = r130032 * r130055;
double r130057 = sqrt(r130040);
double r130058 = r130032 * r130057;
double r130059 = cbrt(r130038);
double r130060 = r130059 * r130059;
double r130061 = r130060 * r130059;
double r130062 = r130033 + r130061;
double r130063 = 1.0;
double r130064 = 4.0;
double r130065 = r130063 / r130064;
double r130066 = pow(r130062, r130065);
double r130067 = r130058 * r130066;
double r130068 = r130047 ? r130056 : r130067;
return r130068;
}



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.7922157314079364e+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.0
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.7922157314079364e+308Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied sqrt-prod0.3
Applied associate-*r*0.3
rmApplied pow10.3
Applied sqrt-pow10.3
Applied sqrt-pow10.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Final simplification13.0
herbie shell --seed 2019294
(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)))))