Average Error: 4.3 → 2.0
Time: 25.5s
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}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{t}}{3} - \left(a + \frac{5}{6}\right), b - c, \frac{z}{\frac{t}{\sqrt{t + a}}}\right)\right)}, x\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}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{t}}{3} - \left(a + \frac{5}{6}\right), b - c, \frac{z}{\frac{t}{\sqrt{t + a}}}\right)\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r63976 = x;
        double r63977 = y;
        double r63978 = 2.0;
        double r63979 = z;
        double r63980 = t;
        double r63981 = a;
        double r63982 = r63980 + r63981;
        double r63983 = sqrt(r63982);
        double r63984 = r63979 * r63983;
        double r63985 = r63984 / r63980;
        double r63986 = b;
        double r63987 = c;
        double r63988 = r63986 - r63987;
        double r63989 = 5.0;
        double r63990 = 6.0;
        double r63991 = r63989 / r63990;
        double r63992 = r63981 + r63991;
        double r63993 = 3.0;
        double r63994 = r63980 * r63993;
        double r63995 = r63978 / r63994;
        double r63996 = r63992 - r63995;
        double r63997 = r63988 * r63996;
        double r63998 = r63985 - r63997;
        double r63999 = r63978 * r63998;
        double r64000 = exp(r63999);
        double r64001 = r63977 * r64000;
        double r64002 = r63976 + r64001;
        double r64003 = r63976 / r64002;
        return r64003;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r64004 = x;
        double r64005 = y;
        double r64006 = 2.0;
        double r64007 = exp(r64006);
        double r64008 = t;
        double r64009 = r64006 / r64008;
        double r64010 = 3.0;
        double r64011 = r64009 / r64010;
        double r64012 = a;
        double r64013 = 5.0;
        double r64014 = 6.0;
        double r64015 = r64013 / r64014;
        double r64016 = r64012 + r64015;
        double r64017 = r64011 - r64016;
        double r64018 = b;
        double r64019 = c;
        double r64020 = r64018 - r64019;
        double r64021 = z;
        double r64022 = r64008 + r64012;
        double r64023 = sqrt(r64022);
        double r64024 = r64008 / r64023;
        double r64025 = r64021 / r64024;
        double r64026 = fma(r64017, r64020, r64025);
        double r64027 = pow(r64007, r64026);
        double r64028 = fma(r64005, r64027, r64004);
        double r64029 = r64004 / r64028;
        return r64029;
}

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.3

    \[\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. Simplified3.0

    \[\leadsto \color{blue}{\frac{x}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{t}}{3} - \left(a + \frac{5}{6}\right), b - c, \frac{z \cdot \sqrt{t + a}}{t}\right)\right)}, x\right)}}\]
  3. Using strategy rm
  4. Applied associate-/l*2.0

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

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

Reproduce

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