Average Error: 29.1 → 29.2
Time: 9.9s
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}\]
\[\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}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 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}
\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}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r94291 = x;
        double r94292 = y;
        double r94293 = r94291 * r94292;
        double r94294 = z;
        double r94295 = r94293 + r94294;
        double r94296 = r94295 * r94292;
        double r94297 = 27464.7644705;
        double r94298 = r94296 + r94297;
        double r94299 = r94298 * r94292;
        double r94300 = 230661.510616;
        double r94301 = r94299 + r94300;
        double r94302 = r94301 * r94292;
        double r94303 = t;
        double r94304 = r94302 + r94303;
        double r94305 = a;
        double r94306 = r94292 + r94305;
        double r94307 = r94306 * r94292;
        double r94308 = b;
        double r94309 = r94307 + r94308;
        double r94310 = r94309 * r94292;
        double r94311 = c;
        double r94312 = r94310 + r94311;
        double r94313 = r94312 * r94292;
        double r94314 = i;
        double r94315 = r94313 + r94314;
        double r94316 = r94304 / r94315;
        return r94316;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r94317 = x;
        double r94318 = y;
        double r94319 = r94317 * r94318;
        double r94320 = z;
        double r94321 = r94319 + r94320;
        double r94322 = r94321 * r94318;
        double r94323 = 27464.7644705;
        double r94324 = r94322 + r94323;
        double r94325 = r94324 * r94318;
        double r94326 = 230661.510616;
        double r94327 = r94325 + r94326;
        double r94328 = r94327 * r94318;
        double r94329 = t;
        double r94330 = r94328 + r94329;
        double r94331 = 1.0;
        double r94332 = a;
        double r94333 = r94318 + r94332;
        double r94334 = b;
        double r94335 = fma(r94333, r94318, r94334);
        double r94336 = c;
        double r94337 = fma(r94335, r94318, r94336);
        double r94338 = i;
        double r94339 = fma(r94337, r94318, r94338);
        double r94340 = r94339 * r94331;
        double r94341 = r94331 / r94340;
        double r94342 = r94330 * r94341;
        return r94342;
}

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 29.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-inv29.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}}\]
  4. Simplified29.2

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

    \[\leadsto \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}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]

Reproduce

herbie shell --seed 2020001 +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.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))