Average Error: 29.0 → 28.2
Time: 8.9s
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 r59552 = x;
        double r59553 = y;
        double r59554 = r59552 * r59553;
        double r59555 = z;
        double r59556 = r59554 + r59555;
        double r59557 = r59556 * r59553;
        double r59558 = 27464.7644705;
        double r59559 = r59557 + r59558;
        double r59560 = r59559 * r59553;
        double r59561 = 230661.510616;
        double r59562 = r59560 + r59561;
        double r59563 = r59562 * r59553;
        double r59564 = t;
        double r59565 = r59563 + r59564;
        double r59566 = a;
        double r59567 = r59553 + r59566;
        double r59568 = r59567 * r59553;
        double r59569 = b;
        double r59570 = r59568 + r59569;
        double r59571 = r59570 * r59553;
        double r59572 = c;
        double r59573 = r59571 + r59572;
        double r59574 = r59573 * r59553;
        double r59575 = i;
        double r59576 = r59574 + r59575;
        double r59577 = r59565 / r59576;
        return r59577;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r59578 = x;
        double r59579 = y;
        double r59580 = r59578 * r59579;
        double r59581 = z;
        double r59582 = r59580 + r59581;
        double r59583 = r59582 * r59579;
        double r59584 = 27464.7644705;
        double r59585 = r59583 + r59584;
        double r59586 = r59585 * r59579;
        double r59587 = 230661.510616;
        double r59588 = r59586 + r59587;
        double r59589 = r59588 * r59579;
        double r59590 = t;
        double r59591 = r59589 + r59590;
        double r59592 = a;
        double r59593 = r59579 + r59592;
        double r59594 = r59593 * r59579;
        double r59595 = b;
        double r59596 = r59594 + r59595;
        double r59597 = r59596 * r59579;
        double r59598 = c;
        double r59599 = r59597 + r59598;
        double r59600 = r59599 * r59579;
        double r59601 = i;
        double r59602 = r59600 + r59601;
        double r59603 = r59591 / r59602;
        double r59604 = 5.142889239312206e+306;
        bool r59605 = r59603 <= r59604;
        double r59606 = cbrt(r59585);
        double r59607 = r59606 * r59606;
        double r59608 = r59606 * r59579;
        double r59609 = r59607 * r59608;
        double r59610 = r59609 + r59587;
        double r59611 = r59610 * r59579;
        double r59612 = r59611 + r59590;
        double r59613 = 1.0;
        double r59614 = r59613 / r59602;
        double r59615 = r59612 * r59614;
        double r59616 = 0.0;
        double r59617 = r59605 ? r59615 : r59616;
        return r59617;
}

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