\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 -5.807335808175188240909392334287986159325:\\
\;\;\;\;\left(\frac{\frac{1}{F \cdot F}}{\sin B} + \frac{-1}{\sin B}\right) - 1 \cdot \frac{x}{\tan B}\\
\mathbf{elif}\;F \le 86.69108830173802004992467118427157402039:\\
\;\;\;\;\frac{F}{\sin B \cdot {\left(\left(2 + F \cdot F\right) + x \cdot 2\right)}^{\left(\frac{1}{2}\right)}} - \left(\cos B \cdot \frac{x}{\sin B}\right) \cdot 1\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\sin B} - \frac{\frac{1}{F \cdot F}}{\sin B}\right) - 1 \cdot \frac{x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r2581169 = x;
double r2581170 = 1.0;
double r2581171 = B;
double r2581172 = tan(r2581171);
double r2581173 = r2581170 / r2581172;
double r2581174 = r2581169 * r2581173;
double r2581175 = -r2581174;
double r2581176 = F;
double r2581177 = sin(r2581171);
double r2581178 = r2581176 / r2581177;
double r2581179 = r2581176 * r2581176;
double r2581180 = 2.0;
double r2581181 = r2581179 + r2581180;
double r2581182 = r2581180 * r2581169;
double r2581183 = r2581181 + r2581182;
double r2581184 = r2581170 / r2581180;
double r2581185 = -r2581184;
double r2581186 = pow(r2581183, r2581185);
double r2581187 = r2581178 * r2581186;
double r2581188 = r2581175 + r2581187;
return r2581188;
}
double f(double F, double B, double x) {
double r2581189 = F;
double r2581190 = -5.807335808175188;
bool r2581191 = r2581189 <= r2581190;
double r2581192 = 1.0;
double r2581193 = r2581189 * r2581189;
double r2581194 = r2581192 / r2581193;
double r2581195 = B;
double r2581196 = sin(r2581195);
double r2581197 = r2581194 / r2581196;
double r2581198 = -1.0;
double r2581199 = r2581198 / r2581196;
double r2581200 = r2581197 + r2581199;
double r2581201 = x;
double r2581202 = tan(r2581195);
double r2581203 = r2581201 / r2581202;
double r2581204 = r2581192 * r2581203;
double r2581205 = r2581200 - r2581204;
double r2581206 = 86.69108830173802;
bool r2581207 = r2581189 <= r2581206;
double r2581208 = 2.0;
double r2581209 = r2581208 + r2581193;
double r2581210 = r2581201 * r2581208;
double r2581211 = r2581209 + r2581210;
double r2581212 = r2581192 / r2581208;
double r2581213 = pow(r2581211, r2581212);
double r2581214 = r2581196 * r2581213;
double r2581215 = r2581189 / r2581214;
double r2581216 = cos(r2581195);
double r2581217 = r2581201 / r2581196;
double r2581218 = r2581216 * r2581217;
double r2581219 = r2581218 * r2581192;
double r2581220 = r2581215 - r2581219;
double r2581221 = 1.0;
double r2581222 = r2581221 / r2581196;
double r2581223 = r2581222 - r2581197;
double r2581224 = r2581223 - r2581204;
double r2581225 = r2581207 ? r2581220 : r2581224;
double r2581226 = r2581191 ? r2581205 : r2581225;
return r2581226;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -5.807335808175188Initial program 25.5
Simplified25.5
rmApplied distribute-frac-neg25.5
Applied pow-neg25.5
Applied frac-times19.9
Simplified19.9
rmApplied div-inv19.9
Applied associate-*l*19.9
Simplified19.8
rmApplied div-inv19.8
Taylor expanded around -inf 0.3
Simplified0.3
if -5.807335808175188 < F < 86.69108830173802Initial program 0.4
Simplified0.4
rmApplied distribute-frac-neg0.4
Applied pow-neg0.4
Applied frac-times0.4
Simplified0.4
rmApplied div-inv0.4
Applied associate-*l*0.4
Simplified0.3
rmApplied tan-quot0.3
Applied associate-/r/0.3
if 86.69108830173802 < F Initial program 24.5
Simplified24.5
rmApplied distribute-frac-neg24.5
Applied pow-neg24.5
Applied frac-times18.5
Simplified18.5
rmApplied div-inv18.5
Applied associate-*l*18.5
Simplified18.4
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.3
herbie shell --seed 2019200
(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))))))