Average Error: 28.3 → 28.4
Time: 25.8s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), t\right)\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644705\right), 230661.510616\right), t\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r1081212 = x;
        double r1081213 = y;
        double r1081214 = r1081212 * r1081213;
        double r1081215 = z;
        double r1081216 = r1081214 + r1081215;
        double r1081217 = r1081216 * r1081213;
        double r1081218 = 27464.7644705;
        double r1081219 = r1081217 + r1081218;
        double r1081220 = r1081219 * r1081213;
        double r1081221 = 230661.510616;
        double r1081222 = r1081220 + r1081221;
        double r1081223 = r1081222 * r1081213;
        double r1081224 = t;
        double r1081225 = r1081223 + r1081224;
        double r1081226 = a;
        double r1081227 = r1081213 + r1081226;
        double r1081228 = r1081227 * r1081213;
        double r1081229 = b;
        double r1081230 = r1081228 + r1081229;
        double r1081231 = r1081230 * r1081213;
        double r1081232 = c;
        double r1081233 = r1081231 + r1081232;
        double r1081234 = r1081233 * r1081213;
        double r1081235 = i;
        double r1081236 = r1081234 + r1081235;
        double r1081237 = r1081225 / r1081236;
        return r1081237;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r1081238 = 1.0;
        double r1081239 = y;
        double r1081240 = a;
        double r1081241 = r1081239 + r1081240;
        double r1081242 = b;
        double r1081243 = fma(r1081241, r1081239, r1081242);
        double r1081244 = c;
        double r1081245 = fma(r1081239, r1081243, r1081244);
        double r1081246 = i;
        double r1081247 = fma(r1081245, r1081239, r1081246);
        double r1081248 = r1081238 / r1081247;
        double r1081249 = x;
        double r1081250 = z;
        double r1081251 = fma(r1081239, r1081249, r1081250);
        double r1081252 = 27464.7644705;
        double r1081253 = fma(r1081239, r1081251, r1081252);
        double r1081254 = 230661.510616;
        double r1081255 = fma(r1081239, r1081253, r1081254);
        double r1081256 = t;
        double r1081257 = fma(r1081239, r1081255, r1081256);
        double r1081258 = r1081248 * r1081257;
        return r1081258;
}

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.3

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Simplified28.3

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

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

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

Reproduce

herbie shell --seed 2019153 +o rules:numerics
(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)))