\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 -225219344219741.5625:\\
\;\;\;\;\frac{x \cdot \left(-1\right)}{\tan B} + \left(\frac{\frac{1}{F \cdot F}}{\sin B} + \frac{-1}{\sin B}\right)\\
\mathbf{elif}\;F \le 10637.3795628844945895252749323844909668:\\
\;\;\;\;\frac{x \cdot \left(-1\right)}{\tan B} + \left({\left(\sqrt{\mathsf{fma}\left(F, F, \mathsf{fma}\left(2, x, 2\right)\right)}\right)}^{\left(\frac{-1}{2}\right)} \cdot {\left(\sqrt{\mathsf{fma}\left(F, F, \mathsf{fma}\left(2, x, 2\right)\right)}\right)}^{\left(\frac{-1}{2}\right)}\right) \cdot \frac{F}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\left(-x\right) \cdot \frac{1}{\tan B} + \left(\frac{1}{\sin B} - \frac{\frac{1}{\sin B}}{F \cdot F}\right)\\
\end{array}double f(double F, double B, double x) {
double r49056 = x;
double r49057 = 1.0;
double r49058 = B;
double r49059 = tan(r49058);
double r49060 = r49057 / r49059;
double r49061 = r49056 * r49060;
double r49062 = -r49061;
double r49063 = F;
double r49064 = sin(r49058);
double r49065 = r49063 / r49064;
double r49066 = r49063 * r49063;
double r49067 = 2.0;
double r49068 = r49066 + r49067;
double r49069 = r49067 * r49056;
double r49070 = r49068 + r49069;
double r49071 = r49057 / r49067;
double r49072 = -r49071;
double r49073 = pow(r49070, r49072);
double r49074 = r49065 * r49073;
double r49075 = r49062 + r49074;
return r49075;
}
double f(double F, double B, double x) {
double r49076 = F;
double r49077 = -225219344219741.56;
bool r49078 = r49076 <= r49077;
double r49079 = x;
double r49080 = 1.0;
double r49081 = -r49080;
double r49082 = r49079 * r49081;
double r49083 = B;
double r49084 = tan(r49083);
double r49085 = r49082 / r49084;
double r49086 = r49076 * r49076;
double r49087 = r49080 / r49086;
double r49088 = sin(r49083);
double r49089 = r49087 / r49088;
double r49090 = -1.0;
double r49091 = r49090 / r49088;
double r49092 = r49089 + r49091;
double r49093 = r49085 + r49092;
double r49094 = 10637.379562884495;
bool r49095 = r49076 <= r49094;
double r49096 = 2.0;
double r49097 = fma(r49096, r49079, r49096);
double r49098 = fma(r49076, r49076, r49097);
double r49099 = sqrt(r49098);
double r49100 = r49081 / r49096;
double r49101 = pow(r49099, r49100);
double r49102 = r49101 * r49101;
double r49103 = r49076 / r49088;
double r49104 = r49102 * r49103;
double r49105 = r49085 + r49104;
double r49106 = -r49079;
double r49107 = r49080 / r49084;
double r49108 = r49106 * r49107;
double r49109 = 1.0;
double r49110 = r49109 / r49088;
double r49111 = r49080 / r49088;
double r49112 = r49111 / r49086;
double r49113 = r49110 - r49112;
double r49114 = r49108 + r49113;
double r49115 = r49095 ? r49105 : r49114;
double r49116 = r49078 ? r49093 : r49115;
return r49116;
}



Bits error versus F



Bits error versus B



Bits error versus x
if F < -225219344219741.56Initial program 25.2
rmApplied associate-*r/25.1
Taylor expanded around -inf 0.1
Simplified0.1
if -225219344219741.56 < F < 10637.379562884495Initial program 0.4
rmApplied associate-*r/0.3
rmApplied add-sqr-sqrt0.3
Applied unpow-prod-down0.3
Simplified0.3
Simplified0.3
if 10637.379562884495 < F Initial program 25.2
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019179 +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))))))