Average Error: 14.1 → 14.1
Time: 37.6s
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)}\]
\[\mathsf{fma}\left({\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)}, \frac{\frac{1}{\sin B}}{\frac{1}{F}}, -\frac{x \cdot 1}{\tan B}\right)\]
\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{\frac{1}{\sin B}}{\frac{1}{F}}, -\frac{x \cdot 1}{\tan B}\right)
double f(double F, double B, double x) {
        double r59752 = x;
        double r59753 = 1.0;
        double r59754 = B;
        double r59755 = tan(r59754);
        double r59756 = r59753 / r59755;
        double r59757 = r59752 * r59756;
        double r59758 = -r59757;
        double r59759 = F;
        double r59760 = sin(r59754);
        double r59761 = r59759 / r59760;
        double r59762 = r59759 * r59759;
        double r59763 = 2.0;
        double r59764 = r59762 + r59763;
        double r59765 = r59763 * r59752;
        double r59766 = r59764 + r59765;
        double r59767 = r59753 / r59763;
        double r59768 = -r59767;
        double r59769 = pow(r59766, r59768);
        double r59770 = r59761 * r59769;
        double r59771 = r59758 + r59770;
        return r59771;
}

double f(double F, double B, double x) {
        double r59772 = 2.0;
        double r59773 = x;
        double r59774 = F;
        double r59775 = fma(r59774, r59774, r59772);
        double r59776 = fma(r59772, r59773, r59775);
        double r59777 = 1.0;
        double r59778 = r59777 / r59772;
        double r59779 = -r59778;
        double r59780 = pow(r59776, r59779);
        double r59781 = 1.0;
        double r59782 = B;
        double r59783 = sin(r59782);
        double r59784 = r59781 / r59783;
        double r59785 = r59781 / r59774;
        double r59786 = r59784 / r59785;
        double r59787 = r59773 * r59777;
        double r59788 = tan(r59782);
        double r59789 = r59787 / r59788;
        double r59790 = -r59789;
        double r59791 = fma(r59780, r59786, r59790);
        return r59791;
}

Error

Bits error versus F

Bits error versus B

Bits error versus x

Derivation

  1. Initial program 14.1

    \[\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. Simplified14.1

    \[\leadsto \color{blue}{\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}, -x \cdot \frac{1}{\tan B}\right)}\]
  3. Using strategy rm
  4. Applied associate-*r/14.1

    \[\leadsto \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}, -\color{blue}{\frac{x \cdot 1}{\tan B}}\right)\]
  5. Using strategy rm
  6. Applied clear-num14.1

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

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

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

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

Reproduce

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