Average Error: 28.7 → 29.0
Time: 8.6s
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}{\frac{\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.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\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}{\frac{\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.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r56904 = x;
        double r56905 = y;
        double r56906 = r56904 * r56905;
        double r56907 = z;
        double r56908 = r56906 + r56907;
        double r56909 = r56908 * r56905;
        double r56910 = 27464.7644705;
        double r56911 = r56909 + r56910;
        double r56912 = r56911 * r56905;
        double r56913 = 230661.510616;
        double r56914 = r56912 + r56913;
        double r56915 = r56914 * r56905;
        double r56916 = t;
        double r56917 = r56915 + r56916;
        double r56918 = a;
        double r56919 = r56905 + r56918;
        double r56920 = r56919 * r56905;
        double r56921 = b;
        double r56922 = r56920 + r56921;
        double r56923 = r56922 * r56905;
        double r56924 = c;
        double r56925 = r56923 + r56924;
        double r56926 = r56925 * r56905;
        double r56927 = i;
        double r56928 = r56926 + r56927;
        double r56929 = r56917 / r56928;
        return r56929;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r56930 = 1.0;
        double r56931 = y;
        double r56932 = a;
        double r56933 = r56931 + r56932;
        double r56934 = r56933 * r56931;
        double r56935 = b;
        double r56936 = r56934 + r56935;
        double r56937 = r56936 * r56931;
        double r56938 = c;
        double r56939 = r56937 + r56938;
        double r56940 = r56939 * r56931;
        double r56941 = i;
        double r56942 = r56940 + r56941;
        double r56943 = x;
        double r56944 = z;
        double r56945 = fma(r56943, r56931, r56944);
        double r56946 = 27464.7644705;
        double r56947 = fma(r56945, r56931, r56946);
        double r56948 = 230661.510616;
        double r56949 = fma(r56947, r56931, r56948);
        double r56950 = t;
        double r56951 = fma(r56949, r56931, r56950);
        double r56952 = r56942 / r56951;
        double r56953 = r56930 / r56952;
        return r56953;
}

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

    \[\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 *-un-lft-identity28.7

    \[\leadsto \frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\color{blue}{1 \cdot \left(\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i\right)}}\]
  4. Applied associate-/r*28.7

    \[\leadsto \color{blue}{\frac{\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{1}}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}}\]
  5. Simplified28.7

    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  6. Using strategy rm
  7. Applied clear-num29.0

    \[\leadsto \color{blue}{\frac{1}{\frac{\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.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}}}\]
  8. Final simplification29.0

    \[\leadsto \frac{1}{\frac{\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.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}}\]

Reproduce

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