Average Error: 29.2 → 29.8
Time: 33.2s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r3690442 = x;
        double r3690443 = y;
        double r3690444 = r3690442 * r3690443;
        double r3690445 = z;
        double r3690446 = r3690444 + r3690445;
        double r3690447 = r3690446 * r3690443;
        double r3690448 = 27464.7644705;
        double r3690449 = r3690447 + r3690448;
        double r3690450 = r3690449 * r3690443;
        double r3690451 = 230661.510616;
        double r3690452 = r3690450 + r3690451;
        double r3690453 = r3690452 * r3690443;
        double r3690454 = t;
        double r3690455 = r3690453 + r3690454;
        double r3690456 = a;
        double r3690457 = r3690443 + r3690456;
        double r3690458 = r3690457 * r3690443;
        double r3690459 = b;
        double r3690460 = r3690458 + r3690459;
        double r3690461 = r3690460 * r3690443;
        double r3690462 = c;
        double r3690463 = r3690461 + r3690462;
        double r3690464 = r3690463 * r3690443;
        double r3690465 = i;
        double r3690466 = r3690464 + r3690465;
        double r3690467 = r3690455 / r3690466;
        return r3690467;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r3690468 = y;
        double r3690469 = x;
        double r3690470 = z;
        double r3690471 = fma(r3690468, r3690469, r3690470);
        double r3690472 = 27464.7644705;
        double r3690473 = fma(r3690468, r3690471, r3690472);
        double r3690474 = 230661.510616;
        double r3690475 = fma(r3690468, r3690473, r3690474);
        double r3690476 = t;
        double r3690477 = fma(r3690475, r3690468, r3690476);
        double r3690478 = a;
        double r3690479 = r3690468 + r3690478;
        double r3690480 = b;
        double r3690481 = fma(r3690479, r3690468, r3690480);
        double r3690482 = c;
        double r3690483 = fma(r3690468, r3690481, r3690482);
        double r3690484 = i;
        double r3690485 = fma(r3690483, r3690468, r3690484);
        double r3690486 = cbrt(r3690485);
        double r3690487 = r3690486 * r3690486;
        double r3690488 = r3690477 / r3690487;
        double r3690489 = r3690488 / r3690486;
        return r3690489;
}

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

Bits error versus i

Derivation

  1. Initial program 29.2

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Simplified29.2

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt29.8

    \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}\]
  5. Applied associate-/r*29.8

    \[\leadsto \color{blue}{\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}\]
  6. Final simplification29.8

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}\]

Reproduce

herbie shell --seed 2019171 +o rules:numerics
(FPCore (x y z t a b c i)
  :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
  (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))