\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 -172717042.99853888:\\
\;\;\;\;\frac{1}{-\left(\frac{x}{\frac{F \cdot F}{\sin B}} + \sin B\right)} - \frac{x}{\tan B}\\
\mathbf{elif}\;F \le 2.0998209165392296 \cdot 10^{+27}:\\
\;\;\;\;\frac{{\left(2 + \left(F \cdot F + x \cdot 2\right)\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \cos B \cdot \frac{x}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{x}{\frac{F \cdot F}{\sin B}} + \sin B} - \frac{x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r2535442 = x;
double r2535443 = 1.0;
double r2535444 = B;
double r2535445 = tan(r2535444);
double r2535446 = r2535443 / r2535445;
double r2535447 = r2535442 * r2535446;
double r2535448 = -r2535447;
double r2535449 = F;
double r2535450 = sin(r2535444);
double r2535451 = r2535449 / r2535450;
double r2535452 = r2535449 * r2535449;
double r2535453 = 2.0;
double r2535454 = r2535452 + r2535453;
double r2535455 = r2535453 * r2535442;
double r2535456 = r2535454 + r2535455;
double r2535457 = r2535443 / r2535453;
double r2535458 = -r2535457;
double r2535459 = pow(r2535456, r2535458);
double r2535460 = r2535451 * r2535459;
double r2535461 = r2535448 + r2535460;
return r2535461;
}
double f(double F, double B, double x) {
double r2535462 = F;
double r2535463 = -172717042.99853888;
bool r2535464 = r2535462 <= r2535463;
double r2535465 = 1.0;
double r2535466 = x;
double r2535467 = r2535462 * r2535462;
double r2535468 = B;
double r2535469 = sin(r2535468);
double r2535470 = r2535467 / r2535469;
double r2535471 = r2535466 / r2535470;
double r2535472 = r2535471 + r2535469;
double r2535473 = -r2535472;
double r2535474 = r2535465 / r2535473;
double r2535475 = tan(r2535468);
double r2535476 = r2535466 / r2535475;
double r2535477 = r2535474 - r2535476;
double r2535478 = 2.0998209165392296e+27;
bool r2535479 = r2535462 <= r2535478;
double r2535480 = 2.0;
double r2535481 = r2535466 * r2535480;
double r2535482 = r2535467 + r2535481;
double r2535483 = r2535480 + r2535482;
double r2535484 = -0.5;
double r2535485 = pow(r2535483, r2535484);
double r2535486 = r2535469 / r2535462;
double r2535487 = r2535485 / r2535486;
double r2535488 = cos(r2535468);
double r2535489 = r2535466 / r2535469;
double r2535490 = r2535488 * r2535489;
double r2535491 = r2535487 - r2535490;
double r2535492 = r2535465 / r2535472;
double r2535493 = r2535492 - r2535476;
double r2535494 = r2535479 ? r2535491 : r2535493;
double r2535495 = r2535464 ? r2535477 : r2535494;
return r2535495;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -172717042.99853888Initial program 25.7
Simplified24.9
rmApplied div-inv24.9
Applied associate-/r*20.2
rmApplied clear-num20.2
Taylor expanded around -inf 0.2
Simplified0.2
if -172717042.99853888 < F < 2.0998209165392296e+27Initial program 0.4
Simplified0.3
rmApplied tan-quot0.4
Applied associate-/r/0.4
if 2.0998209165392296e+27 < F Initial program 27.0
Simplified26.3
rmApplied div-inv26.3
Applied associate-/r*21.4
rmApplied clear-num21.4
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019149
(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))))))