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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r99644 = x;
        double r99645 = y;
        double r99646 = r99644 * r99645;
        double r99647 = z;
        double r99648 = r99646 + r99647;
        double r99649 = r99648 * r99645;
        double r99650 = 27464.7644705;
        double r99651 = r99649 + r99650;
        double r99652 = r99651 * r99645;
        double r99653 = 230661.510616;
        double r99654 = r99652 + r99653;
        double r99655 = r99654 * r99645;
        double r99656 = t;
        double r99657 = r99655 + r99656;
        double r99658 = a;
        double r99659 = r99645 + r99658;
        double r99660 = r99659 * r99645;
        double r99661 = b;
        double r99662 = r99660 + r99661;
        double r99663 = r99662 * r99645;
        double r99664 = c;
        double r99665 = r99663 + r99664;
        double r99666 = r99665 * r99645;
        double r99667 = i;
        double r99668 = r99666 + r99667;
        double r99669 = r99657 / r99668;
        return r99669;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r99670 = x;
        double r99671 = y;
        double r99672 = r99670 * r99671;
        double r99673 = z;
        double r99674 = r99672 + r99673;
        double r99675 = r99674 * r99671;
        double r99676 = 27464.7644705;
        double r99677 = r99675 + r99676;
        double r99678 = r99677 * r99671;
        double r99679 = 230661.510616;
        double r99680 = r99678 + r99679;
        double r99681 = r99680 * r99671;
        double r99682 = t;
        double r99683 = r99681 + r99682;
        double r99684 = a;
        double r99685 = r99671 + r99684;
        double r99686 = r99685 * r99671;
        double r99687 = b;
        double r99688 = r99686 + r99687;
        double r99689 = r99688 * r99671;
        double r99690 = c;
        double r99691 = r99689 + r99690;
        double r99692 = r99691 * r99671;
        double r99693 = i;
        double r99694 = r99692 + r99693;
        double r99695 = r99683 / r99694;
        double r99696 = 5.1359351873177635e+250;
        bool r99697 = r99695 <= r99696;
        double r99698 = cbrt(r99677);
        double r99699 = cbrt(r99671);
        double r99700 = r99698 * r99699;
        double r99701 = cbrt(r99678);
        double r99702 = r99700 * r99701;
        double r99703 = r99702 * r99701;
        double r99704 = r99703 + r99679;
        double r99705 = r99704 * r99671;
        double r99706 = r99705 + r99682;
        double r99707 = r99706 / r99694;
        double r99708 = 0.0;
        double r99709 = r99697 ? r99707 : r99708;
        return r99709;
}

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

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