\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 -2.98626256981204303 \cdot 10^{56}:\\
\;\;\;\;\left(1 \cdot \frac{1}{\sin B \cdot {F}^{2}} - \frac{1}{\sin B}\right) - x \cdot \frac{1}{\tan B}\\
\mathbf{elif}\;F \le 348481.04716082942:\\
\;\;\;\;\frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)} - 1 \cdot \frac{x \cdot \cos B}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\sin B} - 1 \cdot \frac{1}{\sin B \cdot {F}^{2}}\right) - \left(1 \cdot \left(1 \cdot \frac{x}{\sin B}\right)\right) \cdot \cos B\\
\end{array}double f(double F, double B, double x) {
double r37610 = x;
double r37611 = 1.0;
double r37612 = B;
double r37613 = tan(r37612);
double r37614 = r37611 / r37613;
double r37615 = r37610 * r37614;
double r37616 = -r37615;
double r37617 = F;
double r37618 = sin(r37612);
double r37619 = r37617 / r37618;
double r37620 = r37617 * r37617;
double r37621 = 2.0;
double r37622 = r37620 + r37621;
double r37623 = r37621 * r37610;
double r37624 = r37622 + r37623;
double r37625 = r37611 / r37621;
double r37626 = -r37625;
double r37627 = pow(r37624, r37626);
double r37628 = r37619 * r37627;
double r37629 = r37616 + r37628;
return r37629;
}
double f(double F, double B, double x) {
double r37630 = F;
double r37631 = -2.986262569812043e+56;
bool r37632 = r37630 <= r37631;
double r37633 = 1.0;
double r37634 = 1.0;
double r37635 = B;
double r37636 = sin(r37635);
double r37637 = 2.0;
double r37638 = pow(r37630, r37637);
double r37639 = r37636 * r37638;
double r37640 = r37634 / r37639;
double r37641 = r37633 * r37640;
double r37642 = r37634 / r37636;
double r37643 = r37641 - r37642;
double r37644 = x;
double r37645 = tan(r37635);
double r37646 = r37633 / r37645;
double r37647 = r37644 * r37646;
double r37648 = r37643 - r37647;
double r37649 = 348481.0471608294;
bool r37650 = r37630 <= r37649;
double r37651 = r37630 / r37636;
double r37652 = r37630 * r37630;
double r37653 = 2.0;
double r37654 = r37652 + r37653;
double r37655 = r37653 * r37644;
double r37656 = r37654 + r37655;
double r37657 = r37633 / r37653;
double r37658 = -r37657;
double r37659 = pow(r37656, r37658);
double r37660 = r37651 * r37659;
double r37661 = cos(r37635);
double r37662 = r37644 * r37661;
double r37663 = r37662 / r37636;
double r37664 = r37633 * r37663;
double r37665 = r37660 - r37664;
double r37666 = r37642 - r37641;
double r37667 = r37644 / r37636;
double r37668 = r37633 * r37667;
double r37669 = r37634 * r37668;
double r37670 = r37669 * r37661;
double r37671 = r37666 - r37670;
double r37672 = r37650 ? r37665 : r37671;
double r37673 = r37632 ? r37648 : r37672;
return r37673;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -2.986262569812043e+56Initial program 28.3
Simplified28.3
Taylor expanded around -inf 0.2
if -2.986262569812043e+56 < F < 348481.0471608294Initial program 0.6
Simplified0.6
Taylor expanded around inf 0.5
if 348481.0471608294 < F Initial program 24.3
Simplified24.3
rmApplied pow-neg24.3
Applied frac-times18.9
Simplified18.9
rmApplied tan-quot19.0
Applied associate-/r/19.0
Applied associate-*r*18.9
rmApplied *-un-lft-identity18.9
Applied associate-*l*18.9
Simplified18.9
Taylor expanded around inf 0.2
Final simplification0.4
herbie shell --seed 2020049
(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))))))