\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)}\mathsf{fma}\left({\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)}, \frac{F}{\sin B}, -\left(x \cdot \frac{1}{\sin B}\right) \cdot \cos B\right)double f(double F, double B, double x) {
double r51272 = x;
double r51273 = 1.0;
double r51274 = B;
double r51275 = tan(r51274);
double r51276 = r51273 / r51275;
double r51277 = r51272 * r51276;
double r51278 = -r51277;
double r51279 = F;
double r51280 = sin(r51274);
double r51281 = r51279 / r51280;
double r51282 = r51279 * r51279;
double r51283 = 2.0;
double r51284 = r51282 + r51283;
double r51285 = r51283 * r51272;
double r51286 = r51284 + r51285;
double r51287 = r51273 / r51283;
double r51288 = -r51287;
double r51289 = pow(r51286, r51288);
double r51290 = r51281 * r51289;
double r51291 = r51278 + r51290;
return r51291;
}
double f(double F, double B, double x) {
double r51292 = 2.0;
double r51293 = x;
double r51294 = F;
double r51295 = fma(r51294, r51294, r51292);
double r51296 = fma(r51292, r51293, r51295);
double r51297 = 1.0;
double r51298 = r51297 / r51292;
double r51299 = -r51298;
double r51300 = pow(r51296, r51299);
double r51301 = B;
double r51302 = sin(r51301);
double r51303 = r51294 / r51302;
double r51304 = r51297 / r51302;
double r51305 = r51293 * r51304;
double r51306 = cos(r51301);
double r51307 = r51305 * r51306;
double r51308 = -r51307;
double r51309 = fma(r51300, r51303, r51308);
return r51309;
}



Bits error versus F



Bits error versus B



Bits error versus x
Initial program 13.9
Simplified13.9
rmApplied tan-quot13.9
Applied associate-/r/14.0
Applied associate-*r*14.0
Final simplification14.0
herbie shell --seed 2019350 +o rules:numerics
(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))))))