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 r65125 = x;
        double r65126 = y;
        double r65127 = r65125 * r65126;
        double r65128 = z;
        double r65129 = r65127 + r65128;
        double r65130 = r65129 * r65126;
        double r65131 = 27464.7644705;
        double r65132 = r65130 + r65131;
        double r65133 = r65132 * r65126;
        double r65134 = 230661.510616;
        double r65135 = r65133 + r65134;
        double r65136 = r65135 * r65126;
        double r65137 = t;
        double r65138 = r65136 + r65137;
        double r65139 = a;
        double r65140 = r65126 + r65139;
        double r65141 = r65140 * r65126;
        double r65142 = b;
        double r65143 = r65141 + r65142;
        double r65144 = r65143 * r65126;
        double r65145 = c;
        double r65146 = r65144 + r65145;
        double r65147 = r65146 * r65126;
        double r65148 = i;
        double r65149 = r65147 + r65148;
        double r65150 = r65138 / r65149;
        return r65150;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r65151 = x;
        double r65152 = y;
        double r65153 = r65151 * r65152;
        double r65154 = z;
        double r65155 = r65153 + r65154;
        double r65156 = r65155 * r65152;
        double r65157 = 27464.7644705;
        double r65158 = r65156 + r65157;
        double r65159 = r65158 * r65152;
        double r65160 = 230661.510616;
        double r65161 = r65159 + r65160;
        double r65162 = r65161 * r65152;
        double r65163 = t;
        double r65164 = r65162 + r65163;
        double r65165 = 1.0;
        double r65166 = a;
        double r65167 = r65152 + r65166;
        double r65168 = b;
        double r65169 = fma(r65167, r65152, r65168);
        double r65170 = c;
        double r65171 = fma(r65169, r65152, r65170);
        double r65172 = i;
        double r65173 = fma(r65171, r65152, r65172);
        double r65174 = r65173 * r65165;
        double r65175 = r65165 / r65174;
        double r65176 = r65164 * r65175;
        return r65176;
}

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)))