Average Error: 29.5 → 28.8
Time: 8.9s
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}\]
\[\begin{array}{l} \mathbf{if}\;\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} \le 1.0848236090199319 \cdot 10^{299}:\\ \;\;\;\;\frac{\left(\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right) + 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}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]
\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}
\begin{array}{l}
\mathbf{if}\;\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} \le 1.0848236090199319 \cdot 10^{299}:\\
\;\;\;\;\frac{\left(\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right) + 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}\\

\mathbf{else}:\\
\;\;\;\;0\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r59878 = x;
        double r59879 = y;
        double r59880 = r59878 * r59879;
        double r59881 = z;
        double r59882 = r59880 + r59881;
        double r59883 = r59882 * r59879;
        double r59884 = 27464.7644705;
        double r59885 = r59883 + r59884;
        double r59886 = r59885 * r59879;
        double r59887 = 230661.510616;
        double r59888 = r59886 + r59887;
        double r59889 = r59888 * r59879;
        double r59890 = t;
        double r59891 = r59889 + r59890;
        double r59892 = a;
        double r59893 = r59879 + r59892;
        double r59894 = r59893 * r59879;
        double r59895 = b;
        double r59896 = r59894 + r59895;
        double r59897 = r59896 * r59879;
        double r59898 = c;
        double r59899 = r59897 + r59898;
        double r59900 = r59899 * r59879;
        double r59901 = i;
        double r59902 = r59900 + r59901;
        double r59903 = r59891 / r59902;
        return r59903;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r59904 = x;
        double r59905 = y;
        double r59906 = r59904 * r59905;
        double r59907 = z;
        double r59908 = r59906 + r59907;
        double r59909 = r59908 * r59905;
        double r59910 = 27464.7644705;
        double r59911 = r59909 + r59910;
        double r59912 = r59911 * r59905;
        double r59913 = 230661.510616;
        double r59914 = r59912 + r59913;
        double r59915 = r59914 * r59905;
        double r59916 = t;
        double r59917 = r59915 + r59916;
        double r59918 = a;
        double r59919 = r59905 + r59918;
        double r59920 = r59919 * r59905;
        double r59921 = b;
        double r59922 = r59920 + r59921;
        double r59923 = r59922 * r59905;
        double r59924 = c;
        double r59925 = r59923 + r59924;
        double r59926 = r59925 * r59905;
        double r59927 = i;
        double r59928 = r59926 + r59927;
        double r59929 = r59917 / r59928;
        double r59930 = 1.0848236090199319e+299;
        bool r59931 = r59929 <= r59930;
        double r59932 = cbrt(r59908);
        double r59933 = r59932 * r59932;
        double r59934 = r59932 * r59905;
        double r59935 = r59933 * r59934;
        double r59936 = r59935 + r59910;
        double r59937 = r59936 * r59905;
        double r59938 = r59937 + r59913;
        double r59939 = r59938 * r59905;
        double r59940 = r59939 + r59916;
        double r59941 = r59940 / r59928;
        double r59942 = 0.0;
        double r59943 = r59931 ? r59941 : r59942;
        return r59943;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)) < 1.0848236090199319e+299

    1. Initial program 5.4

      \[\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 add-cube-cbrt5.6

      \[\leadsto \frac{\left(\left(\color{blue}{\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \sqrt[3]{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}\]
    4. Applied associate-*l*5.6

      \[\leadsto \frac{\left(\left(\color{blue}{\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right)} + 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}\]

    if 1.0848236090199319e+299 < (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i))

    1. Initial program 63.7

      \[\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. Taylor expanded around 0 61.8

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification28.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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} \le 1.0848236090199319 \cdot 10^{299}:\\ \;\;\;\;\frac{\left(\left(\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \left(\sqrt[3]{x \cdot y + z} \cdot y\right) + 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}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

herbie shell --seed 2020034 
(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)))