\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\begin{array}{l}
\mathbf{if}\;F \le -221911557169.175994873046875:\\
\;\;\;\;\left(\frac{\frac{1}{\sin B}}{F \cdot F} - \frac{1}{\sin B}\right) - \frac{x \cdot 1}{\tan B}\\
\mathbf{elif}\;F \le 65507857.242128990590572357177734375:\\
\;\;\;\;\frac{F \cdot {\left(\sqrt{F \cdot F + \left(x \cdot 2 + 2\right)}\right)}^{\left(-\frac{1}{2}\right)}}{{\left(\sqrt{x \cdot 2 + \left(F \cdot F + 2\right)}\right)}^{\left(\frac{1}{2}\right)} \cdot \sin B} - \frac{x \cdot 1}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\sin B} - \frac{\frac{1}{F \cdot F}}{\sin B}\right) - \frac{x \cdot 1}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r56364 = x;
double r56365 = 1.0;
double r56366 = B;
double r56367 = tan(r56366);
double r56368 = r56365 / r56367;
double r56369 = r56364 * r56368;
double r56370 = -r56369;
double r56371 = F;
double r56372 = sin(r56366);
double r56373 = r56371 / r56372;
double r56374 = r56371 * r56371;
double r56375 = 2.0;
double r56376 = r56374 + r56375;
double r56377 = r56375 * r56364;
double r56378 = r56376 + r56377;
double r56379 = r56365 / r56375;
double r56380 = -r56379;
double r56381 = pow(r56378, r56380);
double r56382 = r56373 * r56381;
double r56383 = r56370 + r56382;
return r56383;
}
double f(double F, double B, double x) {
double r56384 = F;
double r56385 = -221911557169.176;
bool r56386 = r56384 <= r56385;
double r56387 = 1.0;
double r56388 = B;
double r56389 = sin(r56388);
double r56390 = r56387 / r56389;
double r56391 = r56384 * r56384;
double r56392 = r56390 / r56391;
double r56393 = 1.0;
double r56394 = r56393 / r56389;
double r56395 = r56392 - r56394;
double r56396 = x;
double r56397 = r56396 * r56387;
double r56398 = tan(r56388);
double r56399 = r56397 / r56398;
double r56400 = r56395 - r56399;
double r56401 = 65507857.24212899;
bool r56402 = r56384 <= r56401;
double r56403 = 2.0;
double r56404 = r56396 * r56403;
double r56405 = r56404 + r56403;
double r56406 = r56391 + r56405;
double r56407 = sqrt(r56406);
double r56408 = r56387 / r56403;
double r56409 = -r56408;
double r56410 = pow(r56407, r56409);
double r56411 = r56384 * r56410;
double r56412 = r56391 + r56403;
double r56413 = r56404 + r56412;
double r56414 = sqrt(r56413);
double r56415 = pow(r56414, r56408);
double r56416 = r56415 * r56389;
double r56417 = r56411 / r56416;
double r56418 = r56417 - r56399;
double r56419 = r56387 / r56391;
double r56420 = r56419 / r56389;
double r56421 = r56394 - r56420;
double r56422 = r56421 - r56399;
double r56423 = r56402 ? r56418 : r56422;
double r56424 = r56386 ? r56400 : r56423;
return r56424;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -221911557169.176Initial program 25.0
Simplified19.5
Taylor expanded around -inf 0.1
Simplified0.1
if -221911557169.176 < F < 65507857.24212899Initial program 0.4
Simplified0.3
rmApplied add-sqr-sqrt0.3
Applied unpow-prod-down0.3
Applied *-un-lft-identity0.3
Applied times-frac0.3
Applied associate-/r*0.3
Simplified0.3
rmApplied pow-neg0.3
Applied associate-/r/0.2
Simplified0.2
if 65507857.24212899 < F Initial program 25.5
Simplified19.4
rmApplied pow-neg19.4
Applied associate-/r/19.4
Applied *-un-lft-identity19.4
Applied times-frac19.4
Simplified19.4
Simplified19.4
rmApplied frac-times19.4
Simplified19.4
Simplified19.4
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019179
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
(+ (- (* x (/ 1.0 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2.0) (* 2.0 x)) (- (/ 1.0 2.0))))))