Average Error: 29.3 → 29.4
Time: 8.0s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\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.764470499998\right) \cdot y + 230661.510616000014\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.764470499998\right) \cdot y + 230661.510616000014\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.764470499998\right) \cdot y + 230661.510616000014\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 r106823 = x;
        double r106824 = y;
        double r106825 = r106823 * r106824;
        double r106826 = z;
        double r106827 = r106825 + r106826;
        double r106828 = r106827 * r106824;
        double r106829 = 27464.7644705;
        double r106830 = r106828 + r106829;
        double r106831 = r106830 * r106824;
        double r106832 = 230661.510616;
        double r106833 = r106831 + r106832;
        double r106834 = r106833 * r106824;
        double r106835 = t;
        double r106836 = r106834 + r106835;
        double r106837 = a;
        double r106838 = r106824 + r106837;
        double r106839 = r106838 * r106824;
        double r106840 = b;
        double r106841 = r106839 + r106840;
        double r106842 = r106841 * r106824;
        double r106843 = c;
        double r106844 = r106842 + r106843;
        double r106845 = r106844 * r106824;
        double r106846 = i;
        double r106847 = r106845 + r106846;
        double r106848 = r106836 / r106847;
        return r106848;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r106849 = x;
        double r106850 = y;
        double r106851 = r106849 * r106850;
        double r106852 = z;
        double r106853 = r106851 + r106852;
        double r106854 = r106853 * r106850;
        double r106855 = 27464.7644705;
        double r106856 = r106854 + r106855;
        double r106857 = r106856 * r106850;
        double r106858 = 230661.510616;
        double r106859 = r106857 + r106858;
        double r106860 = r106859 * r106850;
        double r106861 = t;
        double r106862 = r106860 + r106861;
        double r106863 = 1.0;
        double r106864 = a;
        double r106865 = r106850 + r106864;
        double r106866 = b;
        double r106867 = fma(r106865, r106850, r106866);
        double r106868 = c;
        double r106869 = fma(r106867, r106850, r106868);
        double r106870 = i;
        double r106871 = fma(r106869, r106850, r106870);
        double r106872 = r106871 * r106863;
        double r106873 = r106863 / r106872;
        double r106874 = r106862 * r106873;
        return r106874;
}

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

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\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.4

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

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\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.4

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\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 2020024 +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)))