Average Error: 29.0 → 29.1
Time: 46.5s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\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.764470499998\right), y, 230661.510616000014\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.764470499998\right) \cdot y + 230661.510616000014\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.764470499998\right), y, 230661.510616000014\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 r69047 = x;
        double r69048 = y;
        double r69049 = r69047 * r69048;
        double r69050 = z;
        double r69051 = r69049 + r69050;
        double r69052 = r69051 * r69048;
        double r69053 = 27464.7644705;
        double r69054 = r69052 + r69053;
        double r69055 = r69054 * r69048;
        double r69056 = 230661.510616;
        double r69057 = r69055 + r69056;
        double r69058 = r69057 * r69048;
        double r69059 = t;
        double r69060 = r69058 + r69059;
        double r69061 = a;
        double r69062 = r69048 + r69061;
        double r69063 = r69062 * r69048;
        double r69064 = b;
        double r69065 = r69063 + r69064;
        double r69066 = r69065 * r69048;
        double r69067 = c;
        double r69068 = r69066 + r69067;
        double r69069 = r69068 * r69048;
        double r69070 = i;
        double r69071 = r69069 + r69070;
        double r69072 = r69060 / r69071;
        return r69072;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r69073 = x;
        double r69074 = y;
        double r69075 = z;
        double r69076 = fma(r69073, r69074, r69075);
        double r69077 = 27464.7644705;
        double r69078 = fma(r69076, r69074, r69077);
        double r69079 = 230661.510616;
        double r69080 = fma(r69078, r69074, r69079);
        double r69081 = t;
        double r69082 = fma(r69080, r69074, r69081);
        double r69083 = 1.0;
        double r69084 = a;
        double r69085 = r69074 + r69084;
        double r69086 = b;
        double r69087 = fma(r69085, r69074, r69086);
        double r69088 = c;
        double r69089 = fma(r69087, r69074, r69088);
        double r69090 = i;
        double r69091 = fma(r69089, r69074, r69090);
        double r69092 = r69083 / r69091;
        double r69093 = r69082 * r69092;
        return r69093;
}

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

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Simplified29.0

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\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-inv29.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\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 simplification29.1

    \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.764470499998\right), y, 230661.510616000014\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 2019199 +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)))