Average Error: 29.0 → 28.2
Time: 34.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{t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y}{i + \left(c + y \cdot \left(b + \left(y + a\right) \cdot y\right)\right) \cdot y} \le 1.213072426168647114270773416697632345229 \cdot 10^{308}:\\ \;\;\;\;\frac{1}{\frac{i + \left(c + \left(a \cdot \left(y \cdot y\right) + \left(y \cdot y + b\right) \cdot y\right)\right) \cdot y}{t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y}}\\ \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{t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y}{i + \left(c + y \cdot \left(b + \left(y + a\right) \cdot y\right)\right) \cdot y} \le 1.213072426168647114270773416697632345229 \cdot 10^{308}:\\
\;\;\;\;\frac{1}{\frac{i + \left(c + \left(a \cdot \left(y \cdot y\right) + \left(y \cdot y + b\right) \cdot y\right)\right) \cdot y}{t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y}}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r4269700 = x;
        double r4269701 = y;
        double r4269702 = r4269700 * r4269701;
        double r4269703 = z;
        double r4269704 = r4269702 + r4269703;
        double r4269705 = r4269704 * r4269701;
        double r4269706 = 27464.7644705;
        double r4269707 = r4269705 + r4269706;
        double r4269708 = r4269707 * r4269701;
        double r4269709 = 230661.510616;
        double r4269710 = r4269708 + r4269709;
        double r4269711 = r4269710 * r4269701;
        double r4269712 = t;
        double r4269713 = r4269711 + r4269712;
        double r4269714 = a;
        double r4269715 = r4269701 + r4269714;
        double r4269716 = r4269715 * r4269701;
        double r4269717 = b;
        double r4269718 = r4269716 + r4269717;
        double r4269719 = r4269718 * r4269701;
        double r4269720 = c;
        double r4269721 = r4269719 + r4269720;
        double r4269722 = r4269721 * r4269701;
        double r4269723 = i;
        double r4269724 = r4269722 + r4269723;
        double r4269725 = r4269713 / r4269724;
        return r4269725;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r4269726 = t;
        double r4269727 = y;
        double r4269728 = z;
        double r4269729 = x;
        double r4269730 = r4269729 * r4269727;
        double r4269731 = r4269728 + r4269730;
        double r4269732 = r4269727 * r4269731;
        double r4269733 = 27464.7644705;
        double r4269734 = r4269732 + r4269733;
        double r4269735 = r4269727 * r4269734;
        double r4269736 = 230661.510616;
        double r4269737 = r4269735 + r4269736;
        double r4269738 = r4269737 * r4269727;
        double r4269739 = r4269726 + r4269738;
        double r4269740 = i;
        double r4269741 = c;
        double r4269742 = b;
        double r4269743 = a;
        double r4269744 = r4269727 + r4269743;
        double r4269745 = r4269744 * r4269727;
        double r4269746 = r4269742 + r4269745;
        double r4269747 = r4269727 * r4269746;
        double r4269748 = r4269741 + r4269747;
        double r4269749 = r4269748 * r4269727;
        double r4269750 = r4269740 + r4269749;
        double r4269751 = r4269739 / r4269750;
        double r4269752 = 1.2130724261686471e+308;
        bool r4269753 = r4269751 <= r4269752;
        double r4269754 = 1.0;
        double r4269755 = r4269727 * r4269727;
        double r4269756 = r4269743 * r4269755;
        double r4269757 = r4269755 + r4269742;
        double r4269758 = r4269757 * r4269727;
        double r4269759 = r4269756 + r4269758;
        double r4269760 = r4269741 + r4269759;
        double r4269761 = r4269760 * r4269727;
        double r4269762 = r4269740 + r4269761;
        double r4269763 = r4269762 / r4269739;
        double r4269764 = r4269754 / r4269763;
        double r4269765 = 0.0;
        double r4269766 = r4269753 ? r4269764 : r4269765;
        return r4269766;
}

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)) < 1.2130724261686471e+308

    1. Initial program 4.9

      \[\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 inf 5.0

      \[\leadsto \frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\color{blue}{\left(a \cdot {y}^{2} + \left({y}^{3} + y \cdot b\right)\right)} + c\right) \cdot y + i}\]
    3. Simplified5.0

      \[\leadsto \frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\color{blue}{\left(y \cdot \left(y \cdot y + b\right) + a \cdot \left(y \cdot y\right)\right)} + c\right) \cdot y + i}\]
    4. Using strategy rm
    5. Applied clear-num5.3

      \[\leadsto \color{blue}{\frac{1}{\frac{\left(\left(y \cdot \left(y \cdot y + b\right) + a \cdot \left(y \cdot y\right)\right) + c\right) \cdot y + i}{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}}}\]

    if 1.2130724261686471e+308 < (/ (+ (* (+ (* (+ (* (+ (* 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.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.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y}{i + \left(c + y \cdot \left(b + \left(y + a\right) \cdot y\right)\right) \cdot y} \le 1.213072426168647114270773416697632345229 \cdot 10^{308}:\\ \;\;\;\;\frac{1}{\frac{i + \left(c + \left(a \cdot \left(y \cdot y\right) + \left(y \cdot y + b\right) \cdot y\right)\right) \cdot y}{t + \left(y \cdot \left(y \cdot \left(z + x \cdot y\right) + 27464.7644704999984242022037506103515625\right) + 230661.5106160000141244381666183471679688\right) \cdot y}}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

herbie shell --seed 2019170 
(FPCore (x y z t a b c i)
  :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
  (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))