\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 -73198.404255480621941387653350830078125:\\
\;\;\;\;\left(\frac{\frac{1}{\sin B}}{F \cdot F} - \frac{1}{\sin B}\right) - x \cdot \frac{1}{\tan B}\\
\mathbf{elif}\;F \le 1085506676732434397003776:\\
\;\;\;\;\frac{\frac{F}{\sin B}}{{\left(\mathsf{fma}\left(F, F, \mathsf{fma}\left(x, 2, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}} - 1 \cdot \frac{x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\frac{F}{\mathsf{fma}\left(1, {\left(\frac{1}{{F}^{1}}\right)}^{1}, {\left(\frac{1}{F}\right)}^{-1}\right)} \cdot \frac{1}{\sin B} - 1 \cdot \frac{x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r2390109 = x;
double r2390110 = 1.0;
double r2390111 = B;
double r2390112 = tan(r2390111);
double r2390113 = r2390110 / r2390112;
double r2390114 = r2390109 * r2390113;
double r2390115 = -r2390114;
double r2390116 = F;
double r2390117 = sin(r2390111);
double r2390118 = r2390116 / r2390117;
double r2390119 = r2390116 * r2390116;
double r2390120 = 2.0;
double r2390121 = r2390119 + r2390120;
double r2390122 = r2390120 * r2390109;
double r2390123 = r2390121 + r2390122;
double r2390124 = r2390110 / r2390120;
double r2390125 = -r2390124;
double r2390126 = pow(r2390123, r2390125);
double r2390127 = r2390118 * r2390126;
double r2390128 = r2390115 + r2390127;
return r2390128;
}
double f(double F, double B, double x) {
double r2390129 = F;
double r2390130 = -73198.40425548062;
bool r2390131 = r2390129 <= r2390130;
double r2390132 = 1.0;
double r2390133 = B;
double r2390134 = sin(r2390133);
double r2390135 = r2390132 / r2390134;
double r2390136 = r2390129 * r2390129;
double r2390137 = r2390135 / r2390136;
double r2390138 = 1.0;
double r2390139 = r2390138 / r2390134;
double r2390140 = r2390137 - r2390139;
double r2390141 = x;
double r2390142 = tan(r2390133);
double r2390143 = r2390132 / r2390142;
double r2390144 = r2390141 * r2390143;
double r2390145 = r2390140 - r2390144;
double r2390146 = 1.0855066767324344e+24;
bool r2390147 = r2390129 <= r2390146;
double r2390148 = r2390129 / r2390134;
double r2390149 = 2.0;
double r2390150 = fma(r2390141, r2390149, r2390149);
double r2390151 = fma(r2390129, r2390129, r2390150);
double r2390152 = r2390132 / r2390149;
double r2390153 = pow(r2390151, r2390152);
double r2390154 = r2390148 / r2390153;
double r2390155 = r2390141 / r2390142;
double r2390156 = r2390132 * r2390155;
double r2390157 = r2390154 - r2390156;
double r2390158 = pow(r2390129, r2390132);
double r2390159 = r2390138 / r2390158;
double r2390160 = pow(r2390159, r2390132);
double r2390161 = r2390138 / r2390129;
double r2390162 = -1.0;
double r2390163 = pow(r2390161, r2390162);
double r2390164 = fma(r2390132, r2390160, r2390163);
double r2390165 = r2390129 / r2390164;
double r2390166 = r2390165 * r2390139;
double r2390167 = r2390166 - r2390156;
double r2390168 = r2390147 ? r2390157 : r2390167;
double r2390169 = r2390131 ? r2390145 : r2390168;
return r2390169;
}



Bits error versus F



Bits error versus B



Bits error versus x
if F < -73198.40425548062Initial program 25.5
Simplified20.0
Taylor expanded around -inf 0.2
Simplified0.2
if -73198.40425548062 < F < 1.0855066767324344e+24Initial program 0.4
Simplified0.4
rmApplied div-inv0.4
Applied associate-*l*0.4
Simplified0.3
rmApplied pow-neg0.3
Applied associate-/r/0.3
Applied associate-/r*0.3
Simplified0.3
if 1.0855066767324344e+24 < F Initial program 25.0
Simplified18.9
rmApplied div-inv18.9
Applied associate-*l*18.9
Simplified18.9
rmApplied pow-neg18.9
Applied associate-/r/18.8
Applied *-un-lft-identity18.8
Applied times-frac18.8
Simplified18.8
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.3
herbie shell --seed 2019172 +o rules:numerics
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
(+ (- (* x (/ 1.0 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2.0) (* 2.0 x)) (- (/ 1.0 2.0))))))