\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)}F \cdot \frac{1}{\frac{\sin B}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}}}} - \frac{x}{\tan B}double f(double F, double B, double x) {
double r2594571 = x;
double r2594572 = 1.0;
double r2594573 = B;
double r2594574 = tan(r2594573);
double r2594575 = r2594572 / r2594574;
double r2594576 = r2594571 * r2594575;
double r2594577 = -r2594576;
double r2594578 = F;
double r2594579 = sin(r2594573);
double r2594580 = r2594578 / r2594579;
double r2594581 = r2594578 * r2594578;
double r2594582 = 2.0;
double r2594583 = r2594581 + r2594582;
double r2594584 = r2594582 * r2594571;
double r2594585 = r2594583 + r2594584;
double r2594586 = r2594572 / r2594582;
double r2594587 = -r2594586;
double r2594588 = pow(r2594585, r2594587);
double r2594589 = r2594580 * r2594588;
double r2594590 = r2594577 + r2594589;
return r2594590;
}
double f(double F, double B, double x) {
double r2594591 = F;
double r2594592 = 1.0;
double r2594593 = B;
double r2594594 = sin(r2594593);
double r2594595 = 2.0;
double r2594596 = x;
double r2594597 = fma(r2594591, r2594591, r2594595);
double r2594598 = fma(r2594595, r2594596, r2594597);
double r2594599 = -0.5;
double r2594600 = pow(r2594598, r2594599);
double r2594601 = r2594594 / r2594600;
double r2594602 = r2594592 / r2594601;
double r2594603 = r2594591 * r2594602;
double r2594604 = tan(r2594593);
double r2594605 = r2594596 / r2594604;
double r2594606 = r2594603 - r2594605;
return r2594606;
}



Bits error versus F



Bits error versus B



Bits error versus x
Initial program 13.6
Simplified10.8
rmApplied *-un-lft-identity10.8
Applied associate-/l*10.8
Final simplification10.8
herbie shell --seed 2019138 +o rules:numerics
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
(+ (- (* x (/ 1 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2) (* 2 x)) (- (/ 1 2))))))