Average Error: 29.1 → 28.3
Time: 11.1s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \le 3.62450759398618954484228470238219178564 \cdot 10^{294}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \le 3.62450759398618954484228470238219178564 \cdot 10^{294}:\\
\;\;\;\;\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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 r96738 = x;
        double r96739 = y;
        double r96740 = r96738 * r96739;
        double r96741 = z;
        double r96742 = r96740 + r96741;
        double r96743 = r96742 * r96739;
        double r96744 = 27464.7644705;
        double r96745 = r96743 + r96744;
        double r96746 = r96745 * r96739;
        double r96747 = 230661.510616;
        double r96748 = r96746 + r96747;
        double r96749 = r96748 * r96739;
        double r96750 = t;
        double r96751 = r96749 + r96750;
        double r96752 = a;
        double r96753 = r96739 + r96752;
        double r96754 = r96753 * r96739;
        double r96755 = b;
        double r96756 = r96754 + r96755;
        double r96757 = r96756 * r96739;
        double r96758 = c;
        double r96759 = r96757 + r96758;
        double r96760 = r96759 * r96739;
        double r96761 = i;
        double r96762 = r96760 + r96761;
        double r96763 = r96751 / r96762;
        return r96763;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r96764 = x;
        double r96765 = y;
        double r96766 = r96764 * r96765;
        double r96767 = z;
        double r96768 = r96766 + r96767;
        double r96769 = r96768 * r96765;
        double r96770 = 27464.7644705;
        double r96771 = r96769 + r96770;
        double r96772 = r96771 * r96765;
        double r96773 = 230661.510616;
        double r96774 = r96772 + r96773;
        double r96775 = r96774 * r96765;
        double r96776 = t;
        double r96777 = r96775 + r96776;
        double r96778 = a;
        double r96779 = r96765 + r96778;
        double r96780 = r96779 * r96765;
        double r96781 = b;
        double r96782 = r96780 + r96781;
        double r96783 = r96782 * r96765;
        double r96784 = c;
        double r96785 = r96783 + r96784;
        double r96786 = r96785 * r96765;
        double r96787 = i;
        double r96788 = r96786 + r96787;
        double r96789 = r96777 / r96788;
        double r96790 = 3.6245075939861895e+294;
        bool r96791 = r96789 <= r96790;
        double r96792 = 1.0;
        double r96793 = r96792 / r96788;
        double r96794 = r96777 * r96793;
        double r96795 = 0.0;
        double r96796 = r96791 ? r96794 : r96795;
        return r96796;
}

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)) < 3.6245075939861895e+294

    1. Initial program 5.1

      \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.2

      \[\leadsto \color{blue}{\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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 3.6245075939861895e+294 < (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i))

    1. Initial program 63.8

      \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i} \le 3.62450759398618954484228470238219178564 \cdot 10^{294}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\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 2019347 
(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)))