Average Error: 29.1 → 29.2
Time: 9.9s
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 r63583 = x;
        double r63584 = y;
        double r63585 = r63583 * r63584;
        double r63586 = z;
        double r63587 = r63585 + r63586;
        double r63588 = r63587 * r63584;
        double r63589 = 27464.7644705;
        double r63590 = r63588 + r63589;
        double r63591 = r63590 * r63584;
        double r63592 = 230661.510616;
        double r63593 = r63591 + r63592;
        double r63594 = r63593 * r63584;
        double r63595 = t;
        double r63596 = r63594 + r63595;
        double r63597 = a;
        double r63598 = r63584 + r63597;
        double r63599 = r63598 * r63584;
        double r63600 = b;
        double r63601 = r63599 + r63600;
        double r63602 = r63601 * r63584;
        double r63603 = c;
        double r63604 = r63602 + r63603;
        double r63605 = r63604 * r63584;
        double r63606 = i;
        double r63607 = r63605 + r63606;
        double r63608 = r63596 / r63607;
        return r63608;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r63609 = x;
        double r63610 = y;
        double r63611 = r63609 * r63610;
        double r63612 = z;
        double r63613 = r63611 + r63612;
        double r63614 = r63613 * r63610;
        double r63615 = 27464.7644705;
        double r63616 = r63614 + r63615;
        double r63617 = r63616 * r63610;
        double r63618 = 230661.510616;
        double r63619 = r63617 + r63618;
        double r63620 = r63619 * r63610;
        double r63621 = t;
        double r63622 = r63620 + r63621;
        double r63623 = 1.0;
        double r63624 = a;
        double r63625 = r63610 + r63624;
        double r63626 = b;
        double r63627 = fma(r63625, r63610, r63626);
        double r63628 = c;
        double r63629 = fma(r63627, r63610, r63628);
        double r63630 = i;
        double r63631 = fma(r63629, r63610, r63630);
        double r63632 = r63631 * r63623;
        double r63633 = r63623 / r63632;
        double r63634 = r63622 * r63633;
        return r63634;
}

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)))