Average Error: 28.3 → 28.3
Time: 37.7s
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{\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)}\]
\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{\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)}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r2014190 = x;
        double r2014191 = y;
        double r2014192 = r2014190 * r2014191;
        double r2014193 = z;
        double r2014194 = r2014192 + r2014193;
        double r2014195 = r2014194 * r2014191;
        double r2014196 = 27464.7644705;
        double r2014197 = r2014195 + r2014196;
        double r2014198 = r2014197 * r2014191;
        double r2014199 = 230661.510616;
        double r2014200 = r2014198 + r2014199;
        double r2014201 = r2014200 * r2014191;
        double r2014202 = t;
        double r2014203 = r2014201 + r2014202;
        double r2014204 = a;
        double r2014205 = r2014191 + r2014204;
        double r2014206 = r2014205 * r2014191;
        double r2014207 = b;
        double r2014208 = r2014206 + r2014207;
        double r2014209 = r2014208 * r2014191;
        double r2014210 = c;
        double r2014211 = r2014209 + r2014210;
        double r2014212 = r2014211 * r2014191;
        double r2014213 = i;
        double r2014214 = r2014212 + r2014213;
        double r2014215 = r2014203 / r2014214;
        return r2014215;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r2014216 = y;
        double r2014217 = x;
        double r2014218 = z;
        double r2014219 = fma(r2014216, r2014217, r2014218);
        double r2014220 = 27464.7644705;
        double r2014221 = fma(r2014216, r2014219, r2014220);
        double r2014222 = 230661.510616;
        double r2014223 = fma(r2014216, r2014221, r2014222);
        double r2014224 = t;
        double r2014225 = fma(r2014216, r2014223, r2014224);
        double r2014226 = a;
        double r2014227 = r2014216 + r2014226;
        double r2014228 = b;
        double r2014229 = fma(r2014227, r2014216, r2014228);
        double r2014230 = c;
        double r2014231 = fma(r2014216, r2014229, r2014230);
        double r2014232 = i;
        double r2014233 = fma(r2014231, r2014216, r2014232);
        double r2014234 = r2014225 / r2014233;
        return r2014234;
}

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

    \[\leadsto \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)}\]

Reproduce

herbie shell --seed 2019135 +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)))