Average Error: 29.5 → 28.8
Time: 8.5s
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 r94005 = x;
        double r94006 = y;
        double r94007 = r94005 * r94006;
        double r94008 = z;
        double r94009 = r94007 + r94008;
        double r94010 = r94009 * r94006;
        double r94011 = 27464.7644705;
        double r94012 = r94010 + r94011;
        double r94013 = r94012 * r94006;
        double r94014 = 230661.510616;
        double r94015 = r94013 + r94014;
        double r94016 = r94015 * r94006;
        double r94017 = t;
        double r94018 = r94016 + r94017;
        double r94019 = a;
        double r94020 = r94006 + r94019;
        double r94021 = r94020 * r94006;
        double r94022 = b;
        double r94023 = r94021 + r94022;
        double r94024 = r94023 * r94006;
        double r94025 = c;
        double r94026 = r94024 + r94025;
        double r94027 = r94026 * r94006;
        double r94028 = i;
        double r94029 = r94027 + r94028;
        double r94030 = r94018 / r94029;
        return r94030;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r94031 = x;
        double r94032 = y;
        double r94033 = r94031 * r94032;
        double r94034 = z;
        double r94035 = r94033 + r94034;
        double r94036 = r94035 * r94032;
        double r94037 = 27464.7644705;
        double r94038 = r94036 + r94037;
        double r94039 = r94038 * r94032;
        double r94040 = 230661.510616;
        double r94041 = r94039 + r94040;
        double r94042 = r94041 * r94032;
        double r94043 = t;
        double r94044 = r94042 + r94043;
        double r94045 = a;
        double r94046 = r94032 + r94045;
        double r94047 = r94046 * r94032;
        double r94048 = b;
        double r94049 = r94047 + r94048;
        double r94050 = r94049 * r94032;
        double r94051 = c;
        double r94052 = r94050 + r94051;
        double r94053 = r94052 * r94032;
        double r94054 = i;
        double r94055 = r94053 + r94054;
        double r94056 = r94044 / r94055;
        double r94057 = 1.0848236090199319e+299;
        bool r94058 = r94056 <= r94057;
        double r94059 = cbrt(r94035);
        double r94060 = r94059 * r94059;
        double r94061 = r94059 * r94032;
        double r94062 = r94060 * r94061;
        double r94063 = r94062 + r94037;
        double r94064 = r94063 * r94032;
        double r94065 = r94064 + r94040;
        double r94066 = r94065 * r94032;
        double r94067 = r94066 + r94043;
        double r94068 = r94067 / r94055;
        double r94069 = 0.0;
        double r94070 = r94058 ? r94068 : r94069;
        return r94070;
}

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