\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 -3.0687291899060427 \cdot 10^{+28}:\\
\;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{x}{\tan B}\\
\mathbf{elif}\;F \le 33330.37501774117:\\
\;\;\;\;\frac{{\left(\left(2 \cdot x + F \cdot F\right) + 2\right)}^{\frac{-1}{4}} \cdot {\left(\left(2 \cdot x + F \cdot F\right) + 2\right)}^{\frac{-1}{4}}}{\frac{\sin B}{F}} - \frac{x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - \frac{1}{F \cdot F}}{\sin B} - \frac{x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r1216365 = x;
double r1216366 = 1.0;
double r1216367 = B;
double r1216368 = tan(r1216367);
double r1216369 = r1216366 / r1216368;
double r1216370 = r1216365 * r1216369;
double r1216371 = -r1216370;
double r1216372 = F;
double r1216373 = sin(r1216367);
double r1216374 = r1216372 / r1216373;
double r1216375 = r1216372 * r1216372;
double r1216376 = 2.0;
double r1216377 = r1216375 + r1216376;
double r1216378 = r1216376 * r1216365;
double r1216379 = r1216377 + r1216378;
double r1216380 = r1216366 / r1216376;
double r1216381 = -r1216380;
double r1216382 = pow(r1216379, r1216381);
double r1216383 = r1216374 * r1216382;
double r1216384 = r1216371 + r1216383;
return r1216384;
}
double f(double F, double B, double x) {
double r1216385 = F;
double r1216386 = -3.0687291899060427e+28;
bool r1216387 = r1216385 <= r1216386;
double r1216388 = 1.0;
double r1216389 = r1216385 * r1216385;
double r1216390 = r1216388 / r1216389;
double r1216391 = r1216390 - r1216388;
double r1216392 = B;
double r1216393 = sin(r1216392);
double r1216394 = r1216391 / r1216393;
double r1216395 = x;
double r1216396 = tan(r1216392);
double r1216397 = r1216395 / r1216396;
double r1216398 = r1216394 - r1216397;
double r1216399 = 33330.37501774117;
bool r1216400 = r1216385 <= r1216399;
double r1216401 = 2.0;
double r1216402 = r1216401 * r1216395;
double r1216403 = r1216402 + r1216389;
double r1216404 = r1216403 + r1216401;
double r1216405 = -0.25;
double r1216406 = pow(r1216404, r1216405);
double r1216407 = r1216406 * r1216406;
double r1216408 = r1216393 / r1216385;
double r1216409 = r1216407 / r1216408;
double r1216410 = r1216409 - r1216397;
double r1216411 = r1216388 - r1216390;
double r1216412 = r1216411 / r1216393;
double r1216413 = r1216412 - r1216397;
double r1216414 = r1216400 ? r1216410 : r1216413;
double r1216415 = r1216387 ? r1216398 : r1216414;
return r1216415;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -3.0687291899060427e+28Initial program 25.4
Simplified24.6
rmApplied div-inv24.6
Applied *-un-lft-identity24.6
Applied times-frac19.9
Simplified19.9
rmApplied associate-*l/19.9
Simplified19.9
Taylor expanded around -inf 0.2
Simplified0.2
if -3.0687291899060427e+28 < F < 33330.37501774117Initial program 0.4
Simplified0.3
rmApplied sqr-pow0.4
if 33330.37501774117 < F Initial program 24.9
Simplified24.4
rmApplied div-inv24.4
Applied *-un-lft-identity24.4
Applied times-frac19.6
Simplified19.6
rmApplied associate-*l/19.6
Simplified19.6
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019143
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
(+ (- (* x (/ 1 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2) (* 2 x)) (- (/ 1 2))))))