Average Error: 29.0 → 28.2
Time: 10.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 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 r59562 = x;
        double r59563 = y;
        double r59564 = r59562 * r59563;
        double r59565 = z;
        double r59566 = r59564 + r59565;
        double r59567 = r59566 * r59563;
        double r59568 = 27464.7644705;
        double r59569 = r59567 + r59568;
        double r59570 = r59569 * r59563;
        double r59571 = 230661.510616;
        double r59572 = r59570 + r59571;
        double r59573 = r59572 * r59563;
        double r59574 = t;
        double r59575 = r59573 + r59574;
        double r59576 = a;
        double r59577 = r59563 + r59576;
        double r59578 = r59577 * r59563;
        double r59579 = b;
        double r59580 = r59578 + r59579;
        double r59581 = r59580 * r59563;
        double r59582 = c;
        double r59583 = r59581 + r59582;
        double r59584 = r59583 * r59563;
        double r59585 = i;
        double r59586 = r59584 + r59585;
        double r59587 = r59575 / r59586;
        return r59587;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r59588 = x;
        double r59589 = y;
        double r59590 = r59588 * r59589;
        double r59591 = z;
        double r59592 = r59590 + r59591;
        double r59593 = r59592 * r59589;
        double r59594 = 27464.7644705;
        double r59595 = r59593 + r59594;
        double r59596 = r59595 * r59589;
        double r59597 = 230661.510616;
        double r59598 = r59596 + r59597;
        double r59599 = r59598 * r59589;
        double r59600 = t;
        double r59601 = r59599 + r59600;
        double r59602 = a;
        double r59603 = r59589 + r59602;
        double r59604 = r59603 * r59589;
        double r59605 = b;
        double r59606 = r59604 + r59605;
        double r59607 = r59606 * r59589;
        double r59608 = c;
        double r59609 = r59607 + r59608;
        double r59610 = r59609 * r59589;
        double r59611 = i;
        double r59612 = r59610 + r59611;
        double r59613 = r59601 / r59612;
        double r59614 = 5.142889239312206e+306;
        bool r59615 = r59613 <= r59614;
        double r59616 = cbrt(r59595);
        double r59617 = r59616 * r59616;
        double r59618 = r59616 * r59589;
        double r59619 = r59617 * r59618;
        double r59620 = r59619 + r59597;
        double r59621 = r59620 * r59589;
        double r59622 = r59621 + r59600;
        double r59623 = 1.0;
        double r59624 = r59623 / r59612;
        double r59625 = r59622 * r59624;
        double r59626 = 0.0;
        double r59627 = r59615 ? r59625 : r59626;
        return r59627;
}

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