Average Error: 4.0 → 2.4
Time: 31.3s
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}{e^{2.0 \cdot \mathsf{fma}\left(z, \frac{\sqrt{a + t}}{t}, \left(b - c\right) \cdot \left(-\left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{3.0 \cdot t}\right)\right)\right)} \cdot y + x}\]
\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}{e^{2.0 \cdot \mathsf{fma}\left(z, \frac{\sqrt{a + t}}{t}, \left(b - c\right) \cdot \left(-\left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{3.0 \cdot t}\right)\right)\right)} \cdot y + x}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2871321 = x;
        double r2871322 = y;
        double r2871323 = 2.0;
        double r2871324 = z;
        double r2871325 = t;
        double r2871326 = a;
        double r2871327 = r2871325 + r2871326;
        double r2871328 = sqrt(r2871327);
        double r2871329 = r2871324 * r2871328;
        double r2871330 = r2871329 / r2871325;
        double r2871331 = b;
        double r2871332 = c;
        double r2871333 = r2871331 - r2871332;
        double r2871334 = 5.0;
        double r2871335 = 6.0;
        double r2871336 = r2871334 / r2871335;
        double r2871337 = r2871326 + r2871336;
        double r2871338 = 3.0;
        double r2871339 = r2871325 * r2871338;
        double r2871340 = r2871323 / r2871339;
        double r2871341 = r2871337 - r2871340;
        double r2871342 = r2871333 * r2871341;
        double r2871343 = r2871330 - r2871342;
        double r2871344 = r2871323 * r2871343;
        double r2871345 = exp(r2871344);
        double r2871346 = r2871322 * r2871345;
        double r2871347 = r2871321 + r2871346;
        double r2871348 = r2871321 / r2871347;
        return r2871348;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2871349 = x;
        double r2871350 = 2.0;
        double r2871351 = z;
        double r2871352 = a;
        double r2871353 = t;
        double r2871354 = r2871352 + r2871353;
        double r2871355 = sqrt(r2871354);
        double r2871356 = r2871355 / r2871353;
        double r2871357 = b;
        double r2871358 = c;
        double r2871359 = r2871357 - r2871358;
        double r2871360 = 5.0;
        double r2871361 = 6.0;
        double r2871362 = r2871360 / r2871361;
        double r2871363 = r2871352 + r2871362;
        double r2871364 = 3.0;
        double r2871365 = r2871364 * r2871353;
        double r2871366 = r2871350 / r2871365;
        double r2871367 = r2871363 - r2871366;
        double r2871368 = -r2871367;
        double r2871369 = r2871359 * r2871368;
        double r2871370 = fma(r2871351, r2871356, r2871369);
        double r2871371 = r2871350 * r2871370;
        double r2871372 = exp(r2871371);
        double r2871373 = y;
        double r2871374 = r2871372 * r2871373;
        double r2871375 = r2871374 + r2871349;
        double r2871376 = r2871349 / r2871375;
        return r2871376;
}

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.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. Using strategy rm
  3. Applied *-un-lft-identity4.0

    \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{\color{blue}{1 \cdot t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
  4. Applied times-frac3.5

    \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\color{blue}{\frac{z}{1} \cdot \frac{\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)}}\]
  5. Applied fma-neg2.4

    \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \color{blue}{\mathsf{fma}\left(\frac{z}{1}, \frac{\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)}}}\]
  6. Final simplification2.4

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

Reproduce

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