Average Error: 29.1 → 29.1
Time: 27.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}\]
\[\frac{1}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(a + y, y, b\right), c\right), i\right)} \cdot \left(t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y\right)\]
\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}
\frac{1}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(a + y, y, b\right), c\right), i\right)} \cdot \left(t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r68654 = x;
        double r68655 = y;
        double r68656 = r68654 * r68655;
        double r68657 = z;
        double r68658 = r68656 + r68657;
        double r68659 = r68658 * r68655;
        double r68660 = 27464.7644705;
        double r68661 = r68659 + r68660;
        double r68662 = r68661 * r68655;
        double r68663 = 230661.510616;
        double r68664 = r68662 + r68663;
        double r68665 = r68664 * r68655;
        double r68666 = t;
        double r68667 = r68665 + r68666;
        double r68668 = a;
        double r68669 = r68655 + r68668;
        double r68670 = r68669 * r68655;
        double r68671 = b;
        double r68672 = r68670 + r68671;
        double r68673 = r68672 * r68655;
        double r68674 = c;
        double r68675 = r68673 + r68674;
        double r68676 = r68675 * r68655;
        double r68677 = i;
        double r68678 = r68676 + r68677;
        double r68679 = r68667 / r68678;
        return r68679;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r68680 = 1.0;
        double r68681 = y;
        double r68682 = a;
        double r68683 = r68682 + r68681;
        double r68684 = b;
        double r68685 = fma(r68683, r68681, r68684);
        double r68686 = c;
        double r68687 = fma(r68681, r68685, r68686);
        double r68688 = i;
        double r68689 = fma(r68681, r68687, r68688);
        double r68690 = r68680 / r68689;
        double r68691 = t;
        double r68692 = z;
        double r68693 = x;
        double r68694 = r68693 * r68681;
        double r68695 = r68692 + r68694;
        double r68696 = r68681 * r68695;
        double r68697 = 27464.7644705;
        double r68698 = r68696 + r68697;
        double r68699 = r68681 * r68698;
        double r68700 = 230661.510616;
        double r68701 = r68699 + r68700;
        double r68702 = r68701 * r68681;
        double r68703 = r68691 + r68702;
        double r68704 = r68690 * r68703;
        return r68704;
}

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

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

    \[\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(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), i\right)}}\]
  5. Final simplification29.1

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

Reproduce

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