Average Error: 29.0 → 28.2
Time: 9.1s
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 5.142889239312206 \cdot 10^{306}:\\ \;\;\;\;\left(\left(\left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot \sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998}\right) \cdot \left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot y\right) + 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}\\ \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 5.142889239312206 \cdot 10^{306}:\\
\;\;\;\;\left(\left(\left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot \sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998}\right) \cdot \left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot y\right) + 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}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r77857 = x;
        double r77858 = y;
        double r77859 = r77857 * r77858;
        double r77860 = z;
        double r77861 = r77859 + r77860;
        double r77862 = r77861 * r77858;
        double r77863 = 27464.7644705;
        double r77864 = r77862 + r77863;
        double r77865 = r77864 * r77858;
        double r77866 = 230661.510616;
        double r77867 = r77865 + r77866;
        double r77868 = r77867 * r77858;
        double r77869 = t;
        double r77870 = r77868 + r77869;
        double r77871 = a;
        double r77872 = r77858 + r77871;
        double r77873 = r77872 * r77858;
        double r77874 = b;
        double r77875 = r77873 + r77874;
        double r77876 = r77875 * r77858;
        double r77877 = c;
        double r77878 = r77876 + r77877;
        double r77879 = r77878 * r77858;
        double r77880 = i;
        double r77881 = r77879 + r77880;
        double r77882 = r77870 / r77881;
        return r77882;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r77883 = x;
        double r77884 = y;
        double r77885 = r77883 * r77884;
        double r77886 = z;
        double r77887 = r77885 + r77886;
        double r77888 = r77887 * r77884;
        double r77889 = 27464.7644705;
        double r77890 = r77888 + r77889;
        double r77891 = r77890 * r77884;
        double r77892 = 230661.510616;
        double r77893 = r77891 + r77892;
        double r77894 = r77893 * r77884;
        double r77895 = t;
        double r77896 = r77894 + r77895;
        double r77897 = a;
        double r77898 = r77884 + r77897;
        double r77899 = r77898 * r77884;
        double r77900 = b;
        double r77901 = r77899 + r77900;
        double r77902 = r77901 * r77884;
        double r77903 = c;
        double r77904 = r77902 + r77903;
        double r77905 = r77904 * r77884;
        double r77906 = i;
        double r77907 = r77905 + r77906;
        double r77908 = r77896 / r77907;
        double r77909 = 5.142889239312206e+306;
        bool r77910 = r77908 <= r77909;
        double r77911 = cbrt(r77890);
        double r77912 = r77911 * r77911;
        double r77913 = r77911 * r77884;
        double r77914 = r77912 * r77913;
        double r77915 = r77914 + r77892;
        double r77916 = r77915 * r77884;
        double r77917 = r77916 + r77895;
        double r77918 = 1.0;
        double r77919 = r77918 / r77907;
        double r77920 = r77917 * r77919;
        double r77921 = 0.0;
        double r77922 = r77910 ? r77920 : r77921;
        return r77922;
}

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)) < 5.142889239312206e+306

    1. Initial program 5.2

      \[\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-inv5.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. Using strategy rm
    5. Applied add-cube-cbrt5.5

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

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

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

    1. Initial program 64.0

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

    \[\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 5.142889239312206 \cdot 10^{306}:\\ \;\;\;\;\left(\left(\left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot \sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998}\right) \cdot \left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot y\right) + 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}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

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