Average Error: 29.2 → 28.6
Time: 8.2s
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.8468834460336946 \cdot 10^{278}:\\ \;\;\;\;\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.8468834460336946 \cdot 10^{278}:\\
\;\;\;\;\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 r64030 = x;
        double r64031 = y;
        double r64032 = r64030 * r64031;
        double r64033 = z;
        double r64034 = r64032 + r64033;
        double r64035 = r64034 * r64031;
        double r64036 = 27464.7644705;
        double r64037 = r64035 + r64036;
        double r64038 = r64037 * r64031;
        double r64039 = 230661.510616;
        double r64040 = r64038 + r64039;
        double r64041 = r64040 * r64031;
        double r64042 = t;
        double r64043 = r64041 + r64042;
        double r64044 = a;
        double r64045 = r64031 + r64044;
        double r64046 = r64045 * r64031;
        double r64047 = b;
        double r64048 = r64046 + r64047;
        double r64049 = r64048 * r64031;
        double r64050 = c;
        double r64051 = r64049 + r64050;
        double r64052 = r64051 * r64031;
        double r64053 = i;
        double r64054 = r64052 + r64053;
        double r64055 = r64043 / r64054;
        return r64055;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r64056 = x;
        double r64057 = y;
        double r64058 = r64056 * r64057;
        double r64059 = z;
        double r64060 = r64058 + r64059;
        double r64061 = r64060 * r64057;
        double r64062 = 27464.7644705;
        double r64063 = r64061 + r64062;
        double r64064 = r64063 * r64057;
        double r64065 = 230661.510616;
        double r64066 = r64064 + r64065;
        double r64067 = r64066 * r64057;
        double r64068 = t;
        double r64069 = r64067 + r64068;
        double r64070 = a;
        double r64071 = r64057 + r64070;
        double r64072 = r64071 * r64057;
        double r64073 = b;
        double r64074 = r64072 + r64073;
        double r64075 = r64074 * r64057;
        double r64076 = c;
        double r64077 = r64075 + r64076;
        double r64078 = r64077 * r64057;
        double r64079 = i;
        double r64080 = r64078 + r64079;
        double r64081 = r64069 / r64080;
        double r64082 = 2.8468834460336946e+278;
        bool r64083 = r64081 <= r64082;
        double r64084 = cbrt(r64061);
        double r64085 = r64084 * r64084;
        double r64086 = r64085 * r64084;
        double r64087 = r64086 + r64062;
        double r64088 = r64087 * r64057;
        double r64089 = r64088 + r64065;
        double r64090 = r64089 * r64057;
        double r64091 = r64090 + r64068;
        double r64092 = r64091 / r64080;
        double r64093 = 0.0;
        double r64094 = r64083 ? r64092 : r64093;
        return r64094;
}

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.8468834460336946e+278

    1. Initial program 5.5

      \[\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(\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.8468834460336946e+278 < (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i))

    1. Initial program 63.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. Taylor expanded around 0 61.7

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

    \[\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.8468834460336946 \cdot 10^{278}:\\ \;\;\;\;\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 2020060 
(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)))