Average Error: 28.3 → 28.4
Time: 30.7s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), t\right)\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), t\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r1099444 = x;
        double r1099445 = y;
        double r1099446 = r1099444 * r1099445;
        double r1099447 = z;
        double r1099448 = r1099446 + r1099447;
        double r1099449 = r1099448 * r1099445;
        double r1099450 = 27464.7644705;
        double r1099451 = r1099449 + r1099450;
        double r1099452 = r1099451 * r1099445;
        double r1099453 = 230661.510616;
        double r1099454 = r1099452 + r1099453;
        double r1099455 = r1099454 * r1099445;
        double r1099456 = t;
        double r1099457 = r1099455 + r1099456;
        double r1099458 = a;
        double r1099459 = r1099445 + r1099458;
        double r1099460 = r1099459 * r1099445;
        double r1099461 = b;
        double r1099462 = r1099460 + r1099461;
        double r1099463 = r1099462 * r1099445;
        double r1099464 = c;
        double r1099465 = r1099463 + r1099464;
        double r1099466 = r1099465 * r1099445;
        double r1099467 = i;
        double r1099468 = r1099466 + r1099467;
        double r1099469 = r1099457 / r1099468;
        return r1099469;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r1099470 = 1.0;
        double r1099471 = y;
        double r1099472 = a;
        double r1099473 = r1099471 + r1099472;
        double r1099474 = b;
        double r1099475 = fma(r1099473, r1099471, r1099474);
        double r1099476 = c;
        double r1099477 = fma(r1099471, r1099475, r1099476);
        double r1099478 = i;
        double r1099479 = fma(r1099477, r1099471, r1099478);
        double r1099480 = r1099470 / r1099479;
        double r1099481 = x;
        double r1099482 = z;
        double r1099483 = fma(r1099471, r1099481, r1099482);
        double r1099484 = 27464.7644705;
        double r1099485 = fma(r1099471, r1099483, r1099484);
        double r1099486 = 230661.510616;
        double r1099487 = fma(r1099471, r1099485, r1099486);
        double r1099488 = t;
        double r1099489 = fma(r1099471, r1099487, r1099488);
        double r1099490 = r1099480 * r1099489;
        return r1099490;
}

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 28.3

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Simplified28.3

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), 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 div-inv28.4

    \[\leadsto \color{blue}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}\]
  5. Final simplification28.4

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

Reproduce

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