\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 -147630781.09449214:\\
\;\;\;\;\frac{1}{-\left(\frac{\sin B}{F \cdot F} \cdot x + \sin B\right)} - \frac{x}{\tan B}\\
\mathbf{elif}\;F \le 57908733.4882209:\\
\;\;\;\;\frac{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{\sin B}{F \cdot F} \cdot x + \sin B} - \frac{x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r12538852 = x;
double r12538853 = 1.0;
double r12538854 = B;
double r12538855 = tan(r12538854);
double r12538856 = r12538853 / r12538855;
double r12538857 = r12538852 * r12538856;
double r12538858 = -r12538857;
double r12538859 = F;
double r12538860 = sin(r12538854);
double r12538861 = r12538859 / r12538860;
double r12538862 = r12538859 * r12538859;
double r12538863 = 2.0;
double r12538864 = r12538862 + r12538863;
double r12538865 = r12538863 * r12538852;
double r12538866 = r12538864 + r12538865;
double r12538867 = r12538853 / r12538863;
double r12538868 = -r12538867;
double r12538869 = pow(r12538866, r12538868);
double r12538870 = r12538861 * r12538869;
double r12538871 = r12538858 + r12538870;
return r12538871;
}
double f(double F, double B, double x) {
double r12538872 = F;
double r12538873 = -147630781.09449214;
bool r12538874 = r12538872 <= r12538873;
double r12538875 = 1.0;
double r12538876 = B;
double r12538877 = sin(r12538876);
double r12538878 = r12538872 * r12538872;
double r12538879 = r12538877 / r12538878;
double r12538880 = x;
double r12538881 = r12538879 * r12538880;
double r12538882 = r12538881 + r12538877;
double r12538883 = -r12538882;
double r12538884 = r12538875 / r12538883;
double r12538885 = tan(r12538876);
double r12538886 = r12538880 / r12538885;
double r12538887 = r12538884 - r12538886;
double r12538888 = 57908733.4882209;
bool r12538889 = r12538872 <= r12538888;
double r12538890 = 2.0;
double r12538891 = r12538878 + r12538890;
double r12538892 = r12538890 * r12538880;
double r12538893 = r12538891 + r12538892;
double r12538894 = -0.5;
double r12538895 = pow(r12538893, r12538894);
double r12538896 = r12538877 / r12538872;
double r12538897 = r12538895 / r12538896;
double r12538898 = r12538897 - r12538886;
double r12538899 = r12538875 / r12538882;
double r12538900 = r12538899 - r12538886;
double r12538901 = r12538889 ? r12538898 : r12538900;
double r12538902 = r12538874 ? r12538887 : r12538901;
return r12538902;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -147630781.09449214Initial program 24.8
Simplified19.7
rmApplied clear-num19.7
Taylor expanded around -inf 0.2
Simplified0.2
if -147630781.09449214 < F < 57908733.4882209Initial program 0.4
Simplified0.3
rmApplied clear-num0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.3
Applied associate-/r*0.3
Simplified0.3
if 57908733.4882209 < F Initial program 24.3
Simplified18.8
rmApplied clear-num18.8
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019128
(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))))))