Average Error: 29.3 → 29.3
Time: 19.0s
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}\]
\[\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), 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)}\]
\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}
\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), 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)}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r87528 = x;
        double r87529 = y;
        double r87530 = r87528 * r87529;
        double r87531 = z;
        double r87532 = r87530 + r87531;
        double r87533 = r87532 * r87529;
        double r87534 = 27464.7644705;
        double r87535 = r87533 + r87534;
        double r87536 = r87535 * r87529;
        double r87537 = 230661.510616;
        double r87538 = r87536 + r87537;
        double r87539 = r87538 * r87529;
        double r87540 = t;
        double r87541 = r87539 + r87540;
        double r87542 = a;
        double r87543 = r87529 + r87542;
        double r87544 = r87543 * r87529;
        double r87545 = b;
        double r87546 = r87544 + r87545;
        double r87547 = r87546 * r87529;
        double r87548 = c;
        double r87549 = r87547 + r87548;
        double r87550 = r87549 * r87529;
        double r87551 = i;
        double r87552 = r87550 + r87551;
        double r87553 = r87541 / r87552;
        return r87553;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r87554 = x;
        double r87555 = y;
        double r87556 = z;
        double r87557 = fma(r87554, r87555, r87556);
        double r87558 = 27464.7644705;
        double r87559 = fma(r87557, r87555, r87558);
        double r87560 = 230661.510616;
        double r87561 = fma(r87559, r87555, r87560);
        double r87562 = t;
        double r87563 = fma(r87561, r87555, r87562);
        double r87564 = 1.0;
        double r87565 = a;
        double r87566 = r87555 + r87565;
        double r87567 = b;
        double r87568 = fma(r87566, r87555, r87567);
        double r87569 = c;
        double r87570 = fma(r87568, r87555, r87569);
        double r87571 = i;
        double r87572 = fma(r87570, r87555, r87571);
        double r87573 = r87564 / r87572;
        double r87574 = r87563 * r87573;
        return r87574;
}

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

    \[\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. Simplified29.3

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), y, t\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\]
  3. Using strategy rm
  4. Applied div-inv29.3

    \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), 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)}}\]
  5. Final simplification29.3

    \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\right), 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)}\]

Reproduce

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