Average Error: 4.0 → 2.6
Time: 7.3s
Precision: 64
\[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\[\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r69731 = x;
        double r69732 = y;
        double r69733 = 2.0;
        double r69734 = z;
        double r69735 = t;
        double r69736 = a;
        double r69737 = r69735 + r69736;
        double r69738 = sqrt(r69737);
        double r69739 = r69734 * r69738;
        double r69740 = r69739 / r69735;
        double r69741 = b;
        double r69742 = c;
        double r69743 = r69741 - r69742;
        double r69744 = 5.0;
        double r69745 = 6.0;
        double r69746 = r69744 / r69745;
        double r69747 = r69736 + r69746;
        double r69748 = 3.0;
        double r69749 = r69735 * r69748;
        double r69750 = r69733 / r69749;
        double r69751 = r69747 - r69750;
        double r69752 = r69743 * r69751;
        double r69753 = r69740 - r69752;
        double r69754 = r69733 * r69753;
        double r69755 = exp(r69754);
        double r69756 = r69732 * r69755;
        double r69757 = r69731 + r69756;
        double r69758 = r69731 / r69757;
        return r69758;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r69759 = x;
        double r69760 = y;
        double r69761 = 2.0;
        double r69762 = z;
        double r69763 = t;
        double r69764 = a;
        double r69765 = r69763 + r69764;
        double r69766 = sqrt(r69765);
        double r69767 = r69762 * r69766;
        double r69768 = 1.0;
        double r69769 = r69768 / r69763;
        double r69770 = b;
        double r69771 = c;
        double r69772 = r69770 - r69771;
        double r69773 = 5.0;
        double r69774 = 6.0;
        double r69775 = r69773 / r69774;
        double r69776 = r69764 + r69775;
        double r69777 = 3.0;
        double r69778 = r69763 * r69777;
        double r69779 = r69761 / r69778;
        double r69780 = r69776 - r69779;
        double r69781 = r69772 * r69780;
        double r69782 = -r69781;
        double r69783 = fma(r69767, r69769, r69782);
        double r69784 = r69761 * r69783;
        double r69785 = exp(r69784);
        double r69786 = r69760 * r69785;
        double r69787 = r69759 + r69786;
        double r69788 = r69759 / r69787;
        return r69788;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Initial program 4.0

    \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
  2. Using strategy rm
  3. Applied div-inv4.0

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\color{blue}{\left(z \cdot \sqrt{t + a}\right) \cdot \frac{1}{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
  4. Applied fma-neg2.6

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}}\]
  5. Final simplification2.6

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]

Reproduce

herbie shell --seed 2020024 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  :precision binary64
  (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))