\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 -11125333120695831522967552:\\
\;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{1 \cdot x}{\tan B}\\
\mathbf{elif}\;F \le 117877.5913479041191749274730682373046875:\\
\;\;\;\;\frac{F}{{\left(\left(x \cdot 2 + 2\right) + F \cdot F\right)}^{\left(\frac{1}{2}\right)} \cdot \sin B} - \frac{1 \cdot x}{\tan B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - \frac{1}{F \cdot F}}{\sin B} - \frac{1 \cdot x}{\tan B}\\
\end{array}double f(double F, double B, double x) {
double r2452245 = x;
double r2452246 = 1.0;
double r2452247 = B;
double r2452248 = tan(r2452247);
double r2452249 = r2452246 / r2452248;
double r2452250 = r2452245 * r2452249;
double r2452251 = -r2452250;
double r2452252 = F;
double r2452253 = sin(r2452247);
double r2452254 = r2452252 / r2452253;
double r2452255 = r2452252 * r2452252;
double r2452256 = 2.0;
double r2452257 = r2452255 + r2452256;
double r2452258 = r2452256 * r2452245;
double r2452259 = r2452257 + r2452258;
double r2452260 = r2452246 / r2452256;
double r2452261 = -r2452260;
double r2452262 = pow(r2452259, r2452261);
double r2452263 = r2452254 * r2452262;
double r2452264 = r2452251 + r2452263;
return r2452264;
}
double f(double F, double B, double x) {
double r2452265 = F;
double r2452266 = -1.1125333120695832e+25;
bool r2452267 = r2452265 <= r2452266;
double r2452268 = 1.0;
double r2452269 = r2452265 * r2452265;
double r2452270 = r2452268 / r2452269;
double r2452271 = 1.0;
double r2452272 = r2452270 - r2452271;
double r2452273 = B;
double r2452274 = sin(r2452273);
double r2452275 = r2452272 / r2452274;
double r2452276 = x;
double r2452277 = r2452268 * r2452276;
double r2452278 = tan(r2452273);
double r2452279 = r2452277 / r2452278;
double r2452280 = r2452275 - r2452279;
double r2452281 = 117877.59134790412;
bool r2452282 = r2452265 <= r2452281;
double r2452283 = 2.0;
double r2452284 = r2452276 * r2452283;
double r2452285 = r2452284 + r2452283;
double r2452286 = r2452285 + r2452269;
double r2452287 = r2452268 / r2452283;
double r2452288 = pow(r2452286, r2452287);
double r2452289 = r2452288 * r2452274;
double r2452290 = r2452265 / r2452289;
double r2452291 = r2452290 - r2452279;
double r2452292 = r2452271 - r2452270;
double r2452293 = r2452292 / r2452274;
double r2452294 = r2452293 - r2452279;
double r2452295 = r2452282 ? r2452291 : r2452294;
double r2452296 = r2452267 ? r2452280 : r2452295;
return r2452296;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -1.1125333120695832e+25Initial program 26.2
Simplified20.6
rmApplied pow-neg20.6
Applied associate-/r/20.5
Applied *-un-lft-identity20.5
Applied times-frac20.5
Simplified20.5
rmApplied associate-*l/20.5
Simplified20.5
Taylor expanded around -inf 0.2
Simplified0.2
if -1.1125333120695832e+25 < F < 117877.59134790412Initial program 0.4
Simplified0.3
rmApplied pow-neg0.3
Applied associate-/r/0.3
Applied *-un-lft-identity0.3
Applied times-frac0.3
Simplified0.3
rmApplied associate-*l/0.3
Simplified0.3
rmApplied associate-/l/0.3
if 117877.59134790412 < F Initial program 25.2
Simplified19.2
rmApplied pow-neg19.2
Applied associate-/r/19.2
Applied *-un-lft-identity19.2
Applied times-frac19.1
Simplified19.1
rmApplied associate-*l/19.1
Simplified19.1
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019192
(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))))))