\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 -32050963.106316439807415008544921875:\\
\;\;\;\;\left(\frac{\frac{1}{F \cdot F}}{\sin B} - \frac{1}{\sin B}\right) - \frac{x}{\tan B} \cdot 1\\
\mathbf{elif}\;F \le 290629823203335895853544123662336:\\
\;\;\;\;\frac{\frac{1}{\frac{\sin B}{{\left(\frac{1}{\left(x \cdot 2 + F \cdot F\right) + 2}\right)}^{\left(\frac{1}{2}\right)}}}}{\frac{1}{F}} - \frac{x}{\tan B} \cdot 1\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\sin B} - \frac{\frac{1}{F \cdot F}}{\sin B}\right) - \frac{x}{\tan B} \cdot 1\\
\end{array}double f(double F, double B, double x) {
double r2663218 = x;
double r2663219 = 1.0;
double r2663220 = B;
double r2663221 = tan(r2663220);
double r2663222 = r2663219 / r2663221;
double r2663223 = r2663218 * r2663222;
double r2663224 = -r2663223;
double r2663225 = F;
double r2663226 = sin(r2663220);
double r2663227 = r2663225 / r2663226;
double r2663228 = r2663225 * r2663225;
double r2663229 = 2.0;
double r2663230 = r2663228 + r2663229;
double r2663231 = r2663229 * r2663218;
double r2663232 = r2663230 + r2663231;
double r2663233 = r2663219 / r2663229;
double r2663234 = -r2663233;
double r2663235 = pow(r2663232, r2663234);
double r2663236 = r2663227 * r2663235;
double r2663237 = r2663224 + r2663236;
return r2663237;
}
double f(double F, double B, double x) {
double r2663238 = F;
double r2663239 = -32050963.10631644;
bool r2663240 = r2663238 <= r2663239;
double r2663241 = 1.0;
double r2663242 = r2663238 * r2663238;
double r2663243 = r2663241 / r2663242;
double r2663244 = B;
double r2663245 = sin(r2663244);
double r2663246 = r2663243 / r2663245;
double r2663247 = 1.0;
double r2663248 = r2663247 / r2663245;
double r2663249 = r2663246 - r2663248;
double r2663250 = x;
double r2663251 = tan(r2663244);
double r2663252 = r2663250 / r2663251;
double r2663253 = r2663252 * r2663241;
double r2663254 = r2663249 - r2663253;
double r2663255 = 2.906298232033359e+32;
bool r2663256 = r2663238 <= r2663255;
double r2663257 = 2.0;
double r2663258 = r2663250 * r2663257;
double r2663259 = r2663258 + r2663242;
double r2663260 = r2663259 + r2663257;
double r2663261 = r2663247 / r2663260;
double r2663262 = r2663241 / r2663257;
double r2663263 = pow(r2663261, r2663262);
double r2663264 = r2663245 / r2663263;
double r2663265 = r2663247 / r2663264;
double r2663266 = r2663247 / r2663238;
double r2663267 = r2663265 / r2663266;
double r2663268 = r2663267 - r2663253;
double r2663269 = r2663248 - r2663246;
double r2663270 = r2663269 - r2663253;
double r2663271 = r2663256 ? r2663268 : r2663270;
double r2663272 = r2663240 ? r2663254 : r2663271;
return r2663272;
}



Bits error versus F



Bits error versus B



Bits error versus x
Results
if F < -32050963.10631644Initial program 26.1
Simplified25.3
rmApplied div-inv25.3
Applied associate-/r*19.9
rmApplied div-inv19.9
Applied associate-*l*19.9
Simplified19.9
Taylor expanded around -inf 0.1
Simplified0.1
if -32050963.10631644 < F < 2.906298232033359e+32Initial program 0.4
Simplified0.4
rmApplied div-inv0.4
Applied associate-/r*0.4
rmApplied div-inv0.4
Applied associate-*l*0.4
Simplified0.3
rmApplied *-un-lft-identity0.3
Applied neg-mul-10.3
Applied times-frac0.3
Applied pow-unpow0.3
Simplified0.3
rmApplied clear-num0.3
if 2.906298232033359e+32 < F Initial program 28.4
Simplified27.7
rmApplied div-inv27.7
Applied associate-/r*21.8
rmApplied div-inv21.8
Applied associate-*l*21.8
Simplified21.8
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019168
(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))))))