\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}\;B \le -1004873.6803424847:\\
\;\;\;\;\left({\left(\sqrt{\mathsf{fma}\left(x, 2, \mathsf{fma}\left(F, F, 2\right)\right)}\right)}^{\frac{-1}{2}} \cdot {\left(\sqrt{\mathsf{fma}\left(x, 2, \mathsf{fma}\left(F, F, 2\right)\right)}\right)}^{\frac{-1}{2}}\right) \cdot \frac{F}{\sin B} - \frac{x}{\tan B}\\
\mathbf{elif}\;B \le 0.006279617967676429:\\
\;\;\;\;\mathsf{fma}\left(B, \frac{7}{360} \cdot \left(B \cdot B\right), \mathsf{fma}\left(B, \frac{1}{6}, \frac{1}{B}\right)\right) \cdot \left(F \cdot {\left(\mathsf{fma}\left(x, 2, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}}\right) - \frac{x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\frac{F}{\sin B} \cdot {\left(\mathsf{fma}\left(x, 2, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} - \frac{1}{\frac{\tan B}{x}}\\
\end{array}double f(double F, double B, double x) {
double r701867 = x;
double r701868 = 1.0;
double r701869 = B;
double r701870 = tan(r701869);
double r701871 = r701868 / r701870;
double r701872 = r701867 * r701871;
double r701873 = -r701872;
double r701874 = F;
double r701875 = sin(r701869);
double r701876 = r701874 / r701875;
double r701877 = r701874 * r701874;
double r701878 = 2.0;
double r701879 = r701877 + r701878;
double r701880 = r701878 * r701867;
double r701881 = r701879 + r701880;
double r701882 = r701868 / r701878;
double r701883 = -r701882;
double r701884 = pow(r701881, r701883);
double r701885 = r701876 * r701884;
double r701886 = r701873 + r701885;
return r701886;
}
double f(double F, double B, double x) {
double r701887 = B;
double r701888 = -1004873.6803424847;
bool r701889 = r701887 <= r701888;
double r701890 = x;
double r701891 = 2.0;
double r701892 = F;
double r701893 = fma(r701892, r701892, r701891);
double r701894 = fma(r701890, r701891, r701893);
double r701895 = sqrt(r701894);
double r701896 = -0.5;
double r701897 = pow(r701895, r701896);
double r701898 = r701897 * r701897;
double r701899 = sin(r701887);
double r701900 = r701892 / r701899;
double r701901 = r701898 * r701900;
double r701902 = tan(r701887);
double r701903 = r701890 / r701902;
double r701904 = r701901 - r701903;
double r701905 = 0.006279617967676429;
bool r701906 = r701887 <= r701905;
double r701907 = 0.019444444444444445;
double r701908 = r701887 * r701887;
double r701909 = r701907 * r701908;
double r701910 = 0.16666666666666666;
double r701911 = 1.0;
double r701912 = r701911 / r701887;
double r701913 = fma(r701887, r701910, r701912);
double r701914 = fma(r701887, r701909, r701913);
double r701915 = pow(r701894, r701896);
double r701916 = r701892 * r701915;
double r701917 = r701914 * r701916;
double r701918 = r701917 - r701903;
double r701919 = r701900 * r701915;
double r701920 = r701902 / r701890;
double r701921 = r701911 / r701920;
double r701922 = r701919 - r701921;
double r701923 = r701906 ? r701918 : r701922;
double r701924 = r701889 ? r701904 : r701923;
return r701924;
}



Bits error versus F



Bits error versus B



Bits error versus x
if B < -1004873.6803424847Initial program 9.3
Simplified9.3
rmApplied add-sqr-sqrt9.3
Applied unpow-prod-down9.3
if -1004873.6803424847 < B < 0.006279617967676429Initial program 17.8
Simplified17.7
rmApplied div-inv17.7
Applied associate-*r*12.1
Taylor expanded around 0 12.3
Simplified12.3
if 0.006279617967676429 < B Initial program 9.7
Simplified9.6
rmApplied clear-num9.7
Final simplification10.8
herbie shell --seed 2019151 +o rules:numerics
(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))))))