\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 r132322 = -2.0;
double r132323 = J;
double r132324 = r132322 * r132323;
double r132325 = K;
double r132326 = 2.0;
double r132327 = r132325 / r132326;
double r132328 = cos(r132327);
double r132329 = r132324 * r132328;
double r132330 = 1.0;
double r132331 = U;
double r132332 = r132326 * r132323;
double r132333 = r132332 * r132328;
double r132334 = r132331 / r132333;
double r132335 = pow(r132334, r132326);
double r132336 = r132330 + r132335;
double r132337 = sqrt(r132336);
double r132338 = r132329 * r132337;
return r132338;
}
double f(double J, double K, double U) {
double r132339 = J;
double r132340 = -1.838279836993495e-208;
bool r132341 = r132339 <= r132340;
double r132342 = 9.304555376088434e-275;
bool r132343 = r132339 <= r132342;
double r132344 = 1.726751503988064e-196;
bool r132345 = r132339 <= r132344;
double r132346 = !r132345;
double r132347 = 2.1734863457091326e-87;
bool r132348 = r132339 <= r132347;
bool r132349 = r132346 && r132348;
bool r132350 = r132343 || r132349;
double r132351 = !r132350;
bool r132352 = r132341 || r132351;
double r132353 = -2.0;
double r132354 = r132353 * r132339;
double r132355 = 1.0;
double r132356 = U;
double r132357 = 2.0;
double r132358 = r132357 * r132339;
double r132359 = K;
double r132360 = r132359 / r132357;
double r132361 = cos(r132360);
double r132362 = r132358 * r132361;
double r132363 = r132356 / r132362;
double r132364 = pow(r132363, r132357);
double r132365 = r132355 + r132364;
double r132366 = sqrt(r132365);
double r132367 = r132366 * r132361;
double r132368 = r132354 * r132367;
double r132369 = 0.25;
double r132370 = sqrt(r132369);
double r132371 = r132370 * r132356;
double r132372 = r132353 * r132371;
double r132373 = r132352 ? r132368 : r132372;
return r132373;
}



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)))))