Average Error: 29.1 → 29.2
Time: 10.3s
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}\]
\[\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.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}
\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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 r93481 = x;
        double r93482 = y;
        double r93483 = r93481 * r93482;
        double r93484 = z;
        double r93485 = r93483 + r93484;
        double r93486 = r93485 * r93482;
        double r93487 = 27464.7644705;
        double r93488 = r93486 + r93487;
        double r93489 = r93488 * r93482;
        double r93490 = 230661.510616;
        double r93491 = r93489 + r93490;
        double r93492 = r93491 * r93482;
        double r93493 = t;
        double r93494 = r93492 + r93493;
        double r93495 = a;
        double r93496 = r93482 + r93495;
        double r93497 = r93496 * r93482;
        double r93498 = b;
        double r93499 = r93497 + r93498;
        double r93500 = r93499 * r93482;
        double r93501 = c;
        double r93502 = r93500 + r93501;
        double r93503 = r93502 * r93482;
        double r93504 = i;
        double r93505 = r93503 + r93504;
        double r93506 = r93494 / r93505;
        return r93506;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r93507 = x;
        double r93508 = y;
        double r93509 = r93507 * r93508;
        double r93510 = z;
        double r93511 = r93509 + r93510;
        double r93512 = r93511 * r93508;
        double r93513 = 27464.7644705;
        double r93514 = r93512 + r93513;
        double r93515 = r93514 * r93508;
        double r93516 = 230661.510616;
        double r93517 = r93515 + r93516;
        double r93518 = r93517 * r93508;
        double r93519 = t;
        double r93520 = r93518 + r93519;
        double r93521 = 1.0;
        double r93522 = a;
        double r93523 = r93508 + r93522;
        double r93524 = b;
        double r93525 = fma(r93523, r93508, r93524);
        double r93526 = c;
        double r93527 = fma(r93525, r93508, r93526);
        double r93528 = i;
        double r93529 = fma(r93527, r93508, r93528);
        double r93530 = r93529 * r93521;
        double r93531 = r93521 / r93530;
        double r93532 = r93520 * r93531;
        return r93532;
}

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

    \[\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. Using strategy rm
  3. Applied div-inv29.2

    \[\leadsto \color{blue}{\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.2

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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. Final simplification29.2

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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 2020001 +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)))