Average Error: 29.2 → 29.3
Time: 7.9s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\left(\left({\left(y \cdot \mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right)\right)}^{1} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\left(\left({\left(y \cdot \mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right)\right)}^{1} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r58450 = x;
        double r58451 = y;
        double r58452 = r58450 * r58451;
        double r58453 = z;
        double r58454 = r58452 + r58453;
        double r58455 = r58454 * r58451;
        double r58456 = 27464.7644705;
        double r58457 = r58455 + r58456;
        double r58458 = r58457 * r58451;
        double r58459 = 230661.510616;
        double r58460 = r58458 + r58459;
        double r58461 = r58460 * r58451;
        double r58462 = t;
        double r58463 = r58461 + r58462;
        double r58464 = a;
        double r58465 = r58451 + r58464;
        double r58466 = r58465 * r58451;
        double r58467 = b;
        double r58468 = r58466 + r58467;
        double r58469 = r58468 * r58451;
        double r58470 = c;
        double r58471 = r58469 + r58470;
        double r58472 = r58471 * r58451;
        double r58473 = i;
        double r58474 = r58472 + r58473;
        double r58475 = r58463 / r58474;
        return r58475;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r58476 = y;
        double r58477 = x;
        double r58478 = z;
        double r58479 = fma(r58477, r58476, r58478);
        double r58480 = 27464.7644705;
        double r58481 = fma(r58479, r58476, r58480);
        double r58482 = r58476 * r58481;
        double r58483 = 1.0;
        double r58484 = pow(r58482, r58483);
        double r58485 = 230661.510616;
        double r58486 = r58484 + r58485;
        double r58487 = r58486 * r58476;
        double r58488 = t;
        double r58489 = r58487 + r58488;
        double r58490 = a;
        double r58491 = r58476 + r58490;
        double r58492 = b;
        double r58493 = fma(r58491, r58476, r58492);
        double r58494 = c;
        double r58495 = fma(r58493, r58476, r58494);
        double r58496 = i;
        double r58497 = fma(r58495, r58476, r58496);
        double r58498 = r58497 * r58483;
        double r58499 = r58483 / r58498;
        double r58500 = r58489 * r58499;
        return r58500;
}

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.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Using strategy rm
  3. Applied div-inv29.3

    \[\leadsto \color{blue}{\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}}\]
  4. Simplified29.3

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \color{blue}{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}}\]
  5. Using strategy rm
  6. Applied pow129.3

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot \color{blue}{{y}^{1}} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  7. Applied pow129.3

    \[\leadsto \left(\left(\color{blue}{{\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right)}^{1}} \cdot {y}^{1} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  8. Applied pow-prod-down29.3

    \[\leadsto \left(\left(\color{blue}{{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y\right)}^{1}} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  9. Simplified29.3

    \[\leadsto \left(\left({\color{blue}{\left(y \cdot \mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right)\right)}}^{1} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
  10. Final simplification29.3

    \[\leadsto \left(\left({\left(y \cdot \mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right)\right)}^{1} + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]

Reproduce

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