\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 -51018.23700738415936939418315887451171875:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(\frac{-1}{\sin B} + \frac{1}{\sin B \cdot {F}^{2}}\right)\\
\mathbf{elif}\;F \le 13415.64195421903423266485333442687988281:\\
\;\;\;\;\left(-1 \cdot \frac{x \cdot \cos B}{\sin B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(\frac{1}{\sin B} - \frac{1}{\sin B \cdot {F}^{2}}\right)\\
\end{array}double f(double F, double B, double x) {
double r103588 = x;
double r103589 = 1.0;
double r103590 = B;
double r103591 = tan(r103590);
double r103592 = r103589 / r103591;
double r103593 = r103588 * r103592;
double r103594 = -r103593;
double r103595 = F;
double r103596 = sin(r103590);
double r103597 = r103595 / r103596;
double r103598 = r103595 * r103595;
double r103599 = 2.0;
double r103600 = r103598 + r103599;
double r103601 = r103599 * r103588;
double r103602 = r103600 + r103601;
double r103603 = r103589 / r103599;
double r103604 = -r103603;
double r103605 = pow(r103602, r103604);
double r103606 = r103597 * r103605;
double r103607 = r103594 + r103606;
return r103607;
}
double f(double F, double B, double x) {
double r103608 = F;
double r103609 = -51018.23700738416;
bool r103610 = r103608 <= r103609;
double r103611 = x;
double r103612 = 1.0;
double r103613 = r103611 * r103612;
double r103614 = B;
double r103615 = tan(r103614);
double r103616 = r103613 / r103615;
double r103617 = -r103616;
double r103618 = -1.0;
double r103619 = sin(r103614);
double r103620 = r103618 / r103619;
double r103621 = 2.0;
double r103622 = pow(r103608, r103621);
double r103623 = r103619 * r103622;
double r103624 = r103612 / r103623;
double r103625 = r103620 + r103624;
double r103626 = r103617 + r103625;
double r103627 = 13415.641954219034;
bool r103628 = r103608 <= r103627;
double r103629 = cos(r103614);
double r103630 = r103611 * r103629;
double r103631 = r103630 / r103619;
double r103632 = r103612 * r103631;
double r103633 = -r103632;
double r103634 = r103608 / r103619;
double r103635 = r103608 * r103608;
double r103636 = 2.0;
double r103637 = r103635 + r103636;
double r103638 = r103636 * r103611;
double r103639 = r103637 + r103638;
double r103640 = r103612 / r103636;
double r103641 = -r103640;
double r103642 = pow(r103639, r103641);
double r103643 = r103634 * r103642;
double r103644 = r103633 + r103643;
double r103645 = 1.0;
double r103646 = r103645 / r103619;
double r103647 = r103646 - r103624;
double r103648 = r103617 + r103647;
double r103649 = r103628 ? r103644 : r103648;
double r103650 = r103610 ? r103626 : r103649;
return r103650;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -51018.23700738416Initial program 24.1
rmApplied pow-neg24.1
Applied frac-times18.5
Simplified18.5
Simplified18.5
rmApplied associate-*r/18.5
Taylor expanded around -inf 0.2
Simplified0.2
if -51018.23700738416 < F < 13415.641954219034Initial program 0.4
Taylor expanded around inf 0.3
if 13415.641954219034 < F Initial program 25.3
rmApplied pow-neg25.3
Applied frac-times19.8
Simplified19.8
Simplified19.8
rmApplied associate-*r/19.7
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019326 +o rules:numerics
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
:precision binary64
(+ (- (* x (/ 1 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2) (* 2 x)) (- (/ 1 2))))))