double f(double J, double K, double U) {
double r24835030 = -2.0;
double r24835031 = J;
double r24835032 = r24835030 * r24835031;
double r24835033 = K;
double r24835034 = 2.0;
double r24835035 = r24835033 / r24835034;
double r24835036 = cos(r24835035);
double r24835037 = r24835032 * r24835036;
double r24835038 = 1.0;
double r24835039 = U;
double r24835040 = r24835034 * r24835031;
double r24835041 = r24835040 * r24835036;
double r24835042 = r24835039 / r24835041;
double r24835043 = pow(r24835042, r24835034);
double r24835044 = r24835038 + r24835043;
double r24835045 = sqrt(r24835044);
double r24835046 = r24835037 * r24835045;
return r24835046;
}
double f(double J, double K, double U) {
double r24835047 = J;
double r24835048 = -1.017703287912558e-220;
bool r24835049 = r24835047 <= r24835048;
double r24835050 = K;
double r24835051 = 2.0;
double r24835052 = r24835050 / r24835051;
double r24835053 = cos(r24835052);
double r24835054 = r24835053 * r24835047;
double r24835055 = -2.0;
double r24835056 = 1.0;
double r24835057 = U;
double r24835058 = r24835051 * r24835054;
double r24835059 = r24835057 / r24835058;
double r24835060 = r24835059 * r24835059;
double r24835061 = r24835056 + r24835060;
double r24835062 = sqrt(r24835061);
double r24835063 = r24835055 * r24835062;
double r24835064 = r24835054 * r24835063;
double r24835065 = 3.5282736756142025e-174;
bool r24835066 = r24835047 <= r24835065;
double r24835067 = -r24835057;
double r24835068 = r24835066 ? r24835067 : r24835064;
double r24835069 = r24835049 ? r24835064 : r24835068;
return r24835069;
}
\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.017703287912558 \cdot 10^{-220}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\
\mathbf{elif}\;J \le 3.5282736756142025 \cdot 10^{-174}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\
\end{array}


Bits error versus J



Bits error versus K



Bits error versus U
if J < -1.017703287912558e-220 or 3.5282736756142025e-174 < J Initial program 11.7
Simplified11.7
if -1.017703287912558e-220 < J < 3.5282736756142025e-174Initial program 38.4
Simplified38.4
Taylor expanded around inf 34.9
Simplified34.9
Final simplification16.0
herbie shell --seed 2019102
(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)))))