\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.838279836993495 \cdot 10^{-208} \lor \neg \left(J \le 9.3045553760884336 \cdot 10^{-275} \lor \neg \left(J \le 1.726751503988064 \cdot 10^{-196}\right) \land J \le 2.17348634570913259 \cdot 10^{-87}\right):\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \cos \left(\frac{K}{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\right)\\
\end{array}double f(double J, double K, double U) {
double r176974 = -2.0;
double r176975 = J;
double r176976 = r176974 * r176975;
double r176977 = K;
double r176978 = 2.0;
double r176979 = r176977 / r176978;
double r176980 = cos(r176979);
double r176981 = r176976 * r176980;
double r176982 = 1.0;
double r176983 = U;
double r176984 = r176978 * r176975;
double r176985 = r176984 * r176980;
double r176986 = r176983 / r176985;
double r176987 = pow(r176986, r176978);
double r176988 = r176982 + r176987;
double r176989 = sqrt(r176988);
double r176990 = r176981 * r176989;
return r176990;
}
double f(double J, double K, double U) {
double r176991 = J;
double r176992 = -1.838279836993495e-208;
bool r176993 = r176991 <= r176992;
double r176994 = 9.304555376088434e-275;
bool r176995 = r176991 <= r176994;
double r176996 = 1.726751503988064e-196;
bool r176997 = r176991 <= r176996;
double r176998 = !r176997;
double r176999 = 2.1734863457091326e-87;
bool r177000 = r176991 <= r176999;
bool r177001 = r176998 && r177000;
bool r177002 = r176995 || r177001;
double r177003 = !r177002;
bool r177004 = r176993 || r177003;
double r177005 = -2.0;
double r177006 = r177005 * r176991;
double r177007 = 1.0;
double r177008 = U;
double r177009 = 2.0;
double r177010 = r177009 * r176991;
double r177011 = K;
double r177012 = r177011 / r177009;
double r177013 = cos(r177012);
double r177014 = r177010 * r177013;
double r177015 = r177008 / r177014;
double r177016 = pow(r177015, r177009);
double r177017 = r177007 + r177016;
double r177018 = sqrt(r177017);
double r177019 = r177018 * r177013;
double r177020 = r177006 * r177019;
double r177021 = 0.25;
double r177022 = sqrt(r177021);
double r177023 = r177022 * r177008;
double r177024 = r177005 * r177023;
double r177025 = r177004 ? r177020 : r177024;
return r177025;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.838279836993495e-208 or 9.304555376088434e-275 < J < 1.726751503988064e-196 or 2.1734863457091326e-87 < J Initial program 13.5
rmApplied associate-*l*13.5
Simplified13.5
if -1.838279836993495e-208 < J < 9.304555376088434e-275 or 1.726751503988064e-196 < J < 2.1734863457091326e-87Initial program 38.4
rmApplied associate-*l*38.5
Simplified38.5
Taylor expanded around 0 37.1
Final simplification17.9
herbie shell --seed 2020042
(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)))))