Average Error: 29.1 → 28.7
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 5.1359351873177635 \cdot 10^{250}:\\ \;\;\;\;\frac{\left(\left(\sqrt[3]{\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y} \cdot \left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot \sqrt[3]{y}\right)\right) \cdot \sqrt[3]{\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}\\ \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.1359351873177635 \cdot 10^{250}:\\
\;\;\;\;\frac{\left(\left(\sqrt[3]{\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y} \cdot \left(\sqrt[3]{\left(x \cdot y + z\right) \cdot y + 27464.764470499998} \cdot \sqrt[3]{y}\right)\right) \cdot \sqrt[3]{\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}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r64589 = x;
        double r64590 = y;
        double r64591 = r64589 * r64590;
        double r64592 = z;
        double r64593 = r64591 + r64592;
        double r64594 = r64593 * r64590;
        double r64595 = 27464.7644705;
        double r64596 = r64594 + r64595;
        double r64597 = r64596 * r64590;
        double r64598 = 230661.510616;
        double r64599 = r64597 + r64598;
        double r64600 = r64599 * r64590;
        double r64601 = t;
        double r64602 = r64600 + r64601;
        double r64603 = a;
        double r64604 = r64590 + r64603;
        double r64605 = r64604 * r64590;
        double r64606 = b;
        double r64607 = r64605 + r64606;
        double r64608 = r64607 * r64590;
        double r64609 = c;
        double r64610 = r64608 + r64609;
        double r64611 = r64610 * r64590;
        double r64612 = i;
        double r64613 = r64611 + r64612;
        double r64614 = r64602 / r64613;
        return r64614;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r64615 = x;
        double r64616 = y;
        double r64617 = r64615 * r64616;
        double r64618 = z;
        double r64619 = r64617 + r64618;
        double r64620 = r64619 * r64616;
        double r64621 = 27464.7644705;
        double r64622 = r64620 + r64621;
        double r64623 = r64622 * r64616;
        double r64624 = 230661.510616;
        double r64625 = r64623 + r64624;
        double r64626 = r64625 * r64616;
        double r64627 = t;
        double r64628 = r64626 + r64627;
        double r64629 = a;
        double r64630 = r64616 + r64629;
        double r64631 = r64630 * r64616;
        double r64632 = b;
        double r64633 = r64631 + r64632;
        double r64634 = r64633 * r64616;
        double r64635 = c;
        double r64636 = r64634 + r64635;
        double r64637 = r64636 * r64616;
        double r64638 = i;
        double r64639 = r64637 + r64638;
        double r64640 = r64628 / r64639;
        double r64641 = 5.1359351873177635e+250;
        bool r64642 = r64640 <= r64641;
        double r64643 = cbrt(r64623);
        double r64644 = cbrt(r64622);
        double r64645 = cbrt(r64616);
        double r64646 = r64644 * r64645;
        double r64647 = r64643 * r64646;
        double r64648 = r64647 * r64643;
        double r64649 = r64648 + r64624;
        double r64650 = r64649 * r64616;
        double r64651 = r64650 + r64627;
        double r64652 = r64651 / r64639;
        double r64653 = 0.0;
        double r64654 = r64642 ? r64652 : r64653;
        return r64654;
}

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.1359351873177635e+250

    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.5

      \[\leadsto \frac{\left(\color{blue}{\left(\sqrt[3]{\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y} \cdot \sqrt[3]{\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y}\right) \cdot \sqrt[3]{\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}\]
    4. Using strategy rm
    5. Applied cbrt-prod5.5

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

    if 5.1359351873177635e+250 < (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i))

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

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

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

Reproduce

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