Average Error: 3.8 → 2.6
Time: 7.8s
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 r54993 = x;
        double r54994 = y;
        double r54995 = 2.0;
        double r54996 = z;
        double r54997 = t;
        double r54998 = a;
        double r54999 = r54997 + r54998;
        double r55000 = sqrt(r54999);
        double r55001 = r54996 * r55000;
        double r55002 = r55001 / r54997;
        double r55003 = b;
        double r55004 = c;
        double r55005 = r55003 - r55004;
        double r55006 = 5.0;
        double r55007 = 6.0;
        double r55008 = r55006 / r55007;
        double r55009 = r54998 + r55008;
        double r55010 = 3.0;
        double r55011 = r54997 * r55010;
        double r55012 = r54995 / r55011;
        double r55013 = r55009 - r55012;
        double r55014 = r55005 * r55013;
        double r55015 = r55002 - r55014;
        double r55016 = r54995 * r55015;
        double r55017 = exp(r55016);
        double r55018 = r54994 * r55017;
        double r55019 = r54993 + r55018;
        double r55020 = r54993 / r55019;
        return r55020;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r55021 = x;
        double r55022 = y;
        double r55023 = 2.0;
        double r55024 = z;
        double r55025 = t;
        double r55026 = a;
        double r55027 = r55025 + r55026;
        double r55028 = sqrt(r55027);
        double r55029 = r55024 * r55028;
        double r55030 = 1.0;
        double r55031 = r55030 / r55025;
        double r55032 = b;
        double r55033 = c;
        double r55034 = r55032 - r55033;
        double r55035 = 5.0;
        double r55036 = 6.0;
        double r55037 = r55035 / r55036;
        double r55038 = r55026 + r55037;
        double r55039 = 3.0;
        double r55040 = r55025 * r55039;
        double r55041 = r55023 / r55040;
        double r55042 = r55038 - r55041;
        double r55043 = r55034 * r55042;
        double r55044 = -r55043;
        double r55045 = fma(r55029, r55031, r55044);
        double r55046 = r55023 * r55045;
        double r55047 = exp(r55046);
        double r55048 = r55022 * r55047;
        double r55049 = r55021 + r55048;
        double r55050 = r55021 / r55049;
        return r55050;
}

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

    \[\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-inv3.8

    \[\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. Using strategy rm
  6. Applied add-log-exp2.6

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\log \left(e^{\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)}\right)}}}\]
  7. Using strategy rm
  8. Applied rem-log-exp2.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)}}}\]
  9. 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 2020001 +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)))))))))))