\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)}\frac{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} \cdot F}{\sin B} - \frac{\cos B \cdot x}{\sin B}double f(double F, double B, double x) {
double r1766634 = x;
double r1766635 = 1.0;
double r1766636 = B;
double r1766637 = tan(r1766636);
double r1766638 = r1766635 / r1766637;
double r1766639 = r1766634 * r1766638;
double r1766640 = -r1766639;
double r1766641 = F;
double r1766642 = sin(r1766636);
double r1766643 = r1766641 / r1766642;
double r1766644 = r1766641 * r1766641;
double r1766645 = 2.0;
double r1766646 = r1766644 + r1766645;
double r1766647 = r1766645 * r1766634;
double r1766648 = r1766646 + r1766647;
double r1766649 = r1766635 / r1766645;
double r1766650 = -r1766649;
double r1766651 = pow(r1766648, r1766650);
double r1766652 = r1766643 * r1766651;
double r1766653 = r1766640 + r1766652;
return r1766653;
}
double f(double F, double B, double x) {
double r1766654 = 2.0;
double r1766655 = x;
double r1766656 = F;
double r1766657 = fma(r1766656, r1766656, r1766654);
double r1766658 = fma(r1766654, r1766655, r1766657);
double r1766659 = -0.5;
double r1766660 = pow(r1766658, r1766659);
double r1766661 = r1766660 * r1766656;
double r1766662 = B;
double r1766663 = sin(r1766662);
double r1766664 = r1766661 / r1766663;
double r1766665 = cos(r1766662);
double r1766666 = r1766665 * r1766655;
double r1766667 = r1766666 / r1766663;
double r1766668 = r1766664 - r1766667;
return r1766668;
}



Bits error versus F



Bits error versus B



Bits error versus x
Initial program 13.3
Simplified13.2
rmApplied associate-*r/10.4
Taylor expanded around -inf 10.4
Final simplification10.4
herbie shell --seed 2019143 +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))))))