Average Error: 3.6 → 2.1
Time: 41.6s
Precision: 64
\[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
\[\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{\sqrt{a + t}}{t}, z, \left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right)\right) \cdot \left(c - b\right)\right)}, x\right)}\]
\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}
\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{\sqrt{a + t}}{t}, z, \left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right)\right) \cdot \left(c - b\right)\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2323984 = x;
        double r2323985 = y;
        double r2323986 = 2.0;
        double r2323987 = z;
        double r2323988 = t;
        double r2323989 = a;
        double r2323990 = r2323988 + r2323989;
        double r2323991 = sqrt(r2323990);
        double r2323992 = r2323987 * r2323991;
        double r2323993 = r2323992 / r2323988;
        double r2323994 = b;
        double r2323995 = c;
        double r2323996 = r2323994 - r2323995;
        double r2323997 = 5.0;
        double r2323998 = 6.0;
        double r2323999 = r2323997 / r2323998;
        double r2324000 = r2323989 + r2323999;
        double r2324001 = 3.0;
        double r2324002 = r2323988 * r2324001;
        double r2324003 = r2323986 / r2324002;
        double r2324004 = r2324000 - r2324003;
        double r2324005 = r2323996 * r2324004;
        double r2324006 = r2323993 - r2324005;
        double r2324007 = r2323986 * r2324006;
        double r2324008 = exp(r2324007);
        double r2324009 = r2323985 * r2324008;
        double r2324010 = r2323984 + r2324009;
        double r2324011 = r2323984 / r2324010;
        return r2324011;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2324012 = x;
        double r2324013 = y;
        double r2324014 = 2.0;
        double r2324015 = a;
        double r2324016 = t;
        double r2324017 = r2324015 + r2324016;
        double r2324018 = sqrt(r2324017);
        double r2324019 = r2324018 / r2324016;
        double r2324020 = z;
        double r2324021 = 5.0;
        double r2324022 = 6.0;
        double r2324023 = r2324021 / r2324022;
        double r2324024 = r2324014 / r2324016;
        double r2324025 = 3.0;
        double r2324026 = r2324024 / r2324025;
        double r2324027 = r2324026 - r2324015;
        double r2324028 = r2324023 - r2324027;
        double r2324029 = c;
        double r2324030 = b;
        double r2324031 = r2324029 - r2324030;
        double r2324032 = r2324028 * r2324031;
        double r2324033 = fma(r2324019, r2324020, r2324032);
        double r2324034 = r2324014 * r2324033;
        double r2324035 = exp(r2324034);
        double r2324036 = fma(r2324013, r2324035, r2324012);
        double r2324037 = r2324012 / r2324036;
        return r2324037;
}

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 3.6

    \[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
  2. Simplified2.1

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

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{\sqrt{a + t}}{t}, z, \left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right)\right) \cdot \left(c - b\right)\right)}, x\right)}\]

Reproduce

herbie shell --seed 2019134 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))