\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 -1.329000906294836725383539291742171683793 \cdot 10^{154}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(1 \cdot \frac{1}{\sin B \cdot {F}^{2}} - \frac{1}{\sin B}\right)\\
\mathbf{elif}\;F \le \frac{5168801664021533}{549755813888}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{F}{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(\frac{1}{2}\right)}}}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \left(\frac{1}{\sin B} - 1 \cdot \frac{1}{\sin B \cdot {F}^{2}}\right)\\
\end{array}double f(double F, double B, double x) {
double r67104 = x;
double r67105 = 1.0;
double r67106 = B;
double r67107 = tan(r67106);
double r67108 = r67105 / r67107;
double r67109 = r67104 * r67108;
double r67110 = -r67109;
double r67111 = F;
double r67112 = sin(r67106);
double r67113 = r67111 / r67112;
double r67114 = r67111 * r67111;
double r67115 = 2.0;
double r67116 = r67114 + r67115;
double r67117 = r67115 * r67104;
double r67118 = r67116 + r67117;
double r67119 = r67105 / r67115;
double r67120 = -r67119;
double r67121 = pow(r67118, r67120);
double r67122 = r67113 * r67121;
double r67123 = r67110 + r67122;
return r67123;
}
double f(double F, double B, double x) {
double r67124 = F;
double r67125 = -1.3290009062948367e+154;
bool r67126 = r67124 <= r67125;
double r67127 = x;
double r67128 = 1.0;
double r67129 = r67127 * r67128;
double r67130 = B;
double r67131 = tan(r67130);
double r67132 = r67129 / r67131;
double r67133 = -r67132;
double r67134 = 1.0;
double r67135 = sin(r67130);
double r67136 = 2.0;
double r67137 = pow(r67124, r67136);
double r67138 = r67135 * r67137;
double r67139 = r67134 / r67138;
double r67140 = r67128 * r67139;
double r67141 = r67134 / r67135;
double r67142 = r67140 - r67141;
double r67143 = r67133 + r67142;
double r67144 = 5168801664021533.0;
double r67145 = 549755813888.0;
double r67146 = r67144 / r67145;
bool r67147 = r67124 <= r67146;
double r67148 = r67124 * r67124;
double r67149 = 2.0;
double r67150 = r67148 + r67149;
double r67151 = r67149 * r67127;
double r67152 = r67150 + r67151;
double r67153 = r67128 / r67149;
double r67154 = pow(r67152, r67153);
double r67155 = r67124 / r67154;
double r67156 = r67155 / r67135;
double r67157 = r67133 + r67156;
double r67158 = r67141 - r67140;
double r67159 = r67133 + r67158;
double r67160 = r67147 ? r67157 : r67159;
double r67161 = r67126 ? r67143 : r67160;
return r67161;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -1.3290009062948367e+154Initial program 40.5
rmApplied div-inv40.5
Applied associate-*l*35.8
Simplified35.8
rmApplied associate-*r/35.8
Taylor expanded around -inf 0.1
if -1.3290009062948367e+154 < F < 9401.995455885359Initial program 1.5
rmApplied div-inv1.6
Applied associate-*l*0.4
Simplified0.4
rmApplied associate-*r/0.3
rmApplied pow-neg0.3
rmApplied associate-*r/0.3
Simplified0.3
if 9401.995455885359 < F Initial program 24.2
rmApplied div-inv24.2
Applied associate-*l*18.8
Simplified18.8
rmApplied associate-*r/18.8
Taylor expanded around inf 0.2
Final simplification0.2
herbie shell --seed 2019303
(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))))))