Average Error: 28.6 → 28.7
Time: 36.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}\]
\[\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}\]
\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}
\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r54353 = x;
        double r54354 = y;
        double r54355 = r54353 * r54354;
        double r54356 = z;
        double r54357 = r54355 + r54356;
        double r54358 = r54357 * r54354;
        double r54359 = 27464.7644705;
        double r54360 = r54358 + r54359;
        double r54361 = r54360 * r54354;
        double r54362 = 230661.510616;
        double r54363 = r54361 + r54362;
        double r54364 = r54363 * r54354;
        double r54365 = t;
        double r54366 = r54364 + r54365;
        double r54367 = a;
        double r54368 = r54354 + r54367;
        double r54369 = r54368 * r54354;
        double r54370 = b;
        double r54371 = r54369 + r54370;
        double r54372 = r54371 * r54354;
        double r54373 = c;
        double r54374 = r54372 + r54373;
        double r54375 = r54374 * r54354;
        double r54376 = i;
        double r54377 = r54375 + r54376;
        double r54378 = r54366 / r54377;
        return r54378;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r54379 = x;
        double r54380 = y;
        double r54381 = z;
        double r54382 = fma(r54379, r54380, r54381);
        double r54383 = 27464.7644705;
        double r54384 = fma(r54382, r54380, r54383);
        double r54385 = 230661.510616;
        double r54386 = fma(r54384, r54380, r54385);
        double r54387 = t;
        double r54388 = fma(r54386, r54380, r54387);
        double r54389 = 1.0;
        double r54390 = a;
        double r54391 = r54380 + r54390;
        double r54392 = b;
        double r54393 = fma(r54391, r54380, r54392);
        double r54394 = c;
        double r54395 = fma(r54393, r54380, r54394);
        double r54396 = i;
        double r54397 = fma(r54395, r54380, r54396);
        double r54398 = r54389 / r54397;
        double r54399 = r54388 * r54398;
        return r54399;
}

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

Derivation

  1. Initial program 28.6

    \[\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. Simplified28.6

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\]
  3. Using strategy rm
  4. Applied div-inv28.7

    \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}\]
  5. Final simplification28.7

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

Reproduce

herbie shell --seed 2019306 +o rules:numerics
(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.764470499998) y) 230661.510616000014) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))