Average Error: 13.6 → 10.7
Time: 36.2s
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)}\]
\[\frac{1}{\sin B} \cdot \left({\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} \cdot F\right) - \frac{x \cdot \cos B}{\sin 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)}
\frac{1}{\sin B} \cdot \left({\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} \cdot F\right) - \frac{x \cdot \cos B}{\sin B}
double f(double F, double B, double x) {
        double r1901653 = x;
        double r1901654 = 1.0;
        double r1901655 = B;
        double r1901656 = tan(r1901655);
        double r1901657 = r1901654 / r1901656;
        double r1901658 = r1901653 * r1901657;
        double r1901659 = -r1901658;
        double r1901660 = F;
        double r1901661 = sin(r1901655);
        double r1901662 = r1901660 / r1901661;
        double r1901663 = r1901660 * r1901660;
        double r1901664 = 2.0;
        double r1901665 = r1901663 + r1901664;
        double r1901666 = r1901664 * r1901653;
        double r1901667 = r1901665 + r1901666;
        double r1901668 = r1901654 / r1901664;
        double r1901669 = -r1901668;
        double r1901670 = pow(r1901667, r1901669);
        double r1901671 = r1901662 * r1901670;
        double r1901672 = r1901659 + r1901671;
        return r1901672;
}

double f(double F, double B, double x) {
        double r1901673 = 1.0;
        double r1901674 = B;
        double r1901675 = sin(r1901674);
        double r1901676 = r1901673 / r1901675;
        double r1901677 = 2.0;
        double r1901678 = x;
        double r1901679 = F;
        double r1901680 = fma(r1901679, r1901679, r1901677);
        double r1901681 = fma(r1901677, r1901678, r1901680);
        double r1901682 = -0.5;
        double r1901683 = pow(r1901681, r1901682);
        double r1901684 = r1901683 * r1901679;
        double r1901685 = r1901676 * r1901684;
        double r1901686 = cos(r1901674);
        double r1901687 = r1901678 * r1901686;
        double r1901688 = r1901687 / r1901675;
        double r1901689 = r1901685 - r1901688;
        return r1901689;
}

Error

Bits error versus F

Bits error versus B

Bits error versus x

Derivation

  1. Initial program 13.6

    \[\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. Simplified13.5

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

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

    \[\leadsto \color{blue}{\left({\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} \cdot F\right) \cdot \frac{1}{\sin B}} - \frac{x}{\tan B}\]
  6. Using strategy rm
  7. Applied clear-num10.7

    \[\leadsto \left({\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\frac{-1}{2}} \cdot F\right) \cdot \frac{1}{\sin B} - \color{blue}{\frac{1}{\frac{\tan B}{x}}}\]
  8. Taylor expanded around inf 10.7

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

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

Reproduce

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