Average Error: 29.0 → 28.2
Time: 35.7s
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 r3540287 = x;
        double r3540288 = y;
        double r3540289 = r3540287 * r3540288;
        double r3540290 = z;
        double r3540291 = r3540289 + r3540290;
        double r3540292 = r3540291 * r3540288;
        double r3540293 = 27464.7644705;
        double r3540294 = r3540292 + r3540293;
        double r3540295 = r3540294 * r3540288;
        double r3540296 = 230661.510616;
        double r3540297 = r3540295 + r3540296;
        double r3540298 = r3540297 * r3540288;
        double r3540299 = t;
        double r3540300 = r3540298 + r3540299;
        double r3540301 = a;
        double r3540302 = r3540288 + r3540301;
        double r3540303 = r3540302 * r3540288;
        double r3540304 = b;
        double r3540305 = r3540303 + r3540304;
        double r3540306 = r3540305 * r3540288;
        double r3540307 = c;
        double r3540308 = r3540306 + r3540307;
        double r3540309 = r3540308 * r3540288;
        double r3540310 = i;
        double r3540311 = r3540309 + r3540310;
        double r3540312 = r3540300 / r3540311;
        return r3540312;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r3540313 = t;
        double r3540314 = y;
        double r3540315 = z;
        double r3540316 = x;
        double r3540317 = r3540316 * r3540314;
        double r3540318 = r3540315 + r3540317;
        double r3540319 = r3540314 * r3540318;
        double r3540320 = 27464.7644705;
        double r3540321 = r3540319 + r3540320;
        double r3540322 = r3540314 * r3540321;
        double r3540323 = 230661.510616;
        double r3540324 = r3540322 + r3540323;
        double r3540325 = r3540324 * r3540314;
        double r3540326 = r3540313 + r3540325;
        double r3540327 = i;
        double r3540328 = c;
        double r3540329 = b;
        double r3540330 = a;
        double r3540331 = r3540314 + r3540330;
        double r3540332 = r3540331 * r3540314;
        double r3540333 = r3540329 + r3540332;
        double r3540334 = r3540314 * r3540333;
        double r3540335 = r3540328 + r3540334;
        double r3540336 = r3540335 * r3540314;
        double r3540337 = r3540327 + r3540336;
        double r3540338 = r3540326 / r3540337;
        double r3540339 = 1.2130724261686471e+308;
        bool r3540340 = r3540338 <= r3540339;
        double r3540341 = 1.0;
        double r3540342 = r3540314 * r3540314;
        double r3540343 = r3540330 * r3540342;
        double r3540344 = r3540342 + r3540329;
        double r3540345 = r3540344 * r3540314;
        double r3540346 = r3540343 + r3540345;
        double r3540347 = r3540328 + r3540346;
        double r3540348 = r3540347 * r3540314;
        double r3540349 = r3540327 + r3540348;
        double r3540350 = r3540349 / r3540326;
        double r3540351 = r3540341 / r3540350;
        double r3540352 = 0.0;
        double r3540353 = r3540340 ? r3540351 : r3540352;
        return r3540353;
}

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