Average Error: 29.2 → 28.5
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 2.9235959509009306 \cdot 10^{289}:\\ \;\;\;\;\frac{\left(\left(\left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y} \cdot \sqrt[3]{\left(x \cdot y + z\right) \cdot y}\right) \cdot \sqrt[3]{\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}\\ \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 2.9235959509009306 \cdot 10^{289}:\\
\;\;\;\;\frac{\left(\left(\left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y} \cdot \sqrt[3]{\left(x \cdot y + z\right) \cdot y}\right) \cdot \sqrt[3]{\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}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r59806 = x;
        double r59807 = y;
        double r59808 = r59806 * r59807;
        double r59809 = z;
        double r59810 = r59808 + r59809;
        double r59811 = r59810 * r59807;
        double r59812 = 27464.7644705;
        double r59813 = r59811 + r59812;
        double r59814 = r59813 * r59807;
        double r59815 = 230661.510616;
        double r59816 = r59814 + r59815;
        double r59817 = r59816 * r59807;
        double r59818 = t;
        double r59819 = r59817 + r59818;
        double r59820 = a;
        double r59821 = r59807 + r59820;
        double r59822 = r59821 * r59807;
        double r59823 = b;
        double r59824 = r59822 + r59823;
        double r59825 = r59824 * r59807;
        double r59826 = c;
        double r59827 = r59825 + r59826;
        double r59828 = r59827 * r59807;
        double r59829 = i;
        double r59830 = r59828 + r59829;
        double r59831 = r59819 / r59830;
        return r59831;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r59832 = x;
        double r59833 = y;
        double r59834 = r59832 * r59833;
        double r59835 = z;
        double r59836 = r59834 + r59835;
        double r59837 = r59836 * r59833;
        double r59838 = 27464.7644705;
        double r59839 = r59837 + r59838;
        double r59840 = r59839 * r59833;
        double r59841 = 230661.510616;
        double r59842 = r59840 + r59841;
        double r59843 = r59842 * r59833;
        double r59844 = t;
        double r59845 = r59843 + r59844;
        double r59846 = a;
        double r59847 = r59833 + r59846;
        double r59848 = r59847 * r59833;
        double r59849 = b;
        double r59850 = r59848 + r59849;
        double r59851 = r59850 * r59833;
        double r59852 = c;
        double r59853 = r59851 + r59852;
        double r59854 = r59853 * r59833;
        double r59855 = i;
        double r59856 = r59854 + r59855;
        double r59857 = r59845 / r59856;
        double r59858 = 2.9235959509009306e+289;
        bool r59859 = r59857 <= r59858;
        double r59860 = cbrt(r59837);
        double r59861 = r59860 * r59860;
        double r59862 = r59861 * r59860;
        double r59863 = r59862 + r59838;
        double r59864 = r59863 * r59833;
        double r59865 = r59864 + r59841;
        double r59866 = r59865 * r59833;
        double r59867 = r59866 + r59844;
        double r59868 = r59867 / r59856;
        double r59869 = 0.0;
        double r59870 = r59859 ? r59868 : r59869;
        return r59870;
}

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)) < 2.9235959509009306e+289

    1. Initial program 5.6

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

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

    if 2.9235959509009306e+289 < (/ (+ (* (+ (* (+ (* (+ (* 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.7

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

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

Reproduce

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