Average Error: 13.3 → 10.4
Time: 3.5m
Precision: 64
\[\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{{\left(\mathsf{fma}\left(x, 2, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\sin B} - \frac{x}{\tan B}\]
\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{{\left(\mathsf{fma}\left(x, 2, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\sin B} - \frac{x}{\tan B}
double f(double F, double B, double x) {
        double r14771730 = x;
        double r14771731 = 1.0;
        double r14771732 = B;
        double r14771733 = tan(r14771732);
        double r14771734 = r14771731 / r14771733;
        double r14771735 = r14771730 * r14771734;
        double r14771736 = -r14771735;
        double r14771737 = F;
        double r14771738 = sin(r14771732);
        double r14771739 = r14771737 / r14771738;
        double r14771740 = r14771737 * r14771737;
        double r14771741 = 2.0;
        double r14771742 = r14771740 + r14771741;
        double r14771743 = r14771741 * r14771730;
        double r14771744 = r14771742 + r14771743;
        double r14771745 = r14771731 / r14771741;
        double r14771746 = -r14771745;
        double r14771747 = pow(r14771744, r14771746);
        double r14771748 = r14771739 * r14771747;
        double r14771749 = r14771736 + r14771748;
        return r14771749;
}

double f(double F, double B, double x) {
        double r14771750 = F;
        double r14771751 = x;
        double r14771752 = 2.0;
        double r14771753 = fma(r14771750, r14771750, r14771752);
        double r14771754 = fma(r14771751, r14771752, r14771753);
        double r14771755 = -0.5;
        double r14771756 = pow(r14771754, r14771755);
        double r14771757 = B;
        double r14771758 = sin(r14771757);
        double r14771759 = r14771756 / r14771758;
        double r14771760 = r14771750 * r14771759;
        double r14771761 = tan(r14771757);
        double r14771762 = r14771751 / r14771761;
        double r14771763 = r14771760 - r14771762;
        return r14771763;
}

Error

Bits error versus F

Bits error versus B

Bits error versus x

Derivation

  1. Initial program 13.3

    \[\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)}\]
  2. Simplified12.8

    \[\leadsto \color{blue}{\frac{{\left(\mathsf{fma}\left(2, x, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{x}{\tan B}}\]
  3. Using strategy rm
  4. Applied div-inv12.8

    \[\leadsto \frac{{\left(\mathsf{fma}\left(2, x, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\color{blue}{\sin B \cdot \frac{1}{F}}} - \frac{x}{\tan B}\]
  5. Applied *-un-lft-identity12.8

    \[\leadsto \frac{\color{blue}{1 \cdot {\left(\mathsf{fma}\left(2, x, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}}{\sin B \cdot \frac{1}{F}} - \frac{x}{\tan B}\]
  6. Applied times-frac10.4

    \[\leadsto \color{blue}{\frac{1}{\sin B} \cdot \frac{{\left(\mathsf{fma}\left(2, x, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\frac{1}{F}}} - \frac{x}{\tan B}\]
  7. Simplified10.4

    \[\leadsto \frac{1}{\sin B} \cdot \color{blue}{\left({\left(\mathsf{fma}\left(x, 2, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}} \cdot F\right)} - \frac{x}{\tan B}\]
  8. Using strategy rm
  9. Applied associate-*r*10.4

    \[\leadsto \color{blue}{\left(\frac{1}{\sin B} \cdot {\left(\mathsf{fma}\left(x, 2, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}\right) \cdot F} - \frac{x}{\tan B}\]
  10. Simplified10.4

    \[\leadsto \color{blue}{\frac{{\left(\mathsf{fma}\left(x, 2, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\sin B}} \cdot F - \frac{x}{\tan B}\]
  11. Final simplification10.4

    \[\leadsto F \cdot \frac{{\left(\mathsf{fma}\left(x, 2, \left(\mathsf{fma}\left(F, F, 2\right)\right)\right)\right)}^{\frac{-1}{2}}}{\sin B} - \frac{x}{\tan B}\]

Reproduce

herbie shell --seed 2019125 +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))))))