Average Error: 29.2 → 29.8
Time: 35.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}\]
\[\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\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.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}
\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\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 r2616139 = x;
        double r2616140 = y;
        double r2616141 = r2616139 * r2616140;
        double r2616142 = z;
        double r2616143 = r2616141 + r2616142;
        double r2616144 = r2616143 * r2616140;
        double r2616145 = 27464.7644705;
        double r2616146 = r2616144 + r2616145;
        double r2616147 = r2616146 * r2616140;
        double r2616148 = 230661.510616;
        double r2616149 = r2616147 + r2616148;
        double r2616150 = r2616149 * r2616140;
        double r2616151 = t;
        double r2616152 = r2616150 + r2616151;
        double r2616153 = a;
        double r2616154 = r2616140 + r2616153;
        double r2616155 = r2616154 * r2616140;
        double r2616156 = b;
        double r2616157 = r2616155 + r2616156;
        double r2616158 = r2616157 * r2616140;
        double r2616159 = c;
        double r2616160 = r2616158 + r2616159;
        double r2616161 = r2616160 * r2616140;
        double r2616162 = i;
        double r2616163 = r2616161 + r2616162;
        double r2616164 = r2616152 / r2616163;
        return r2616164;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r2616165 = y;
        double r2616166 = x;
        double r2616167 = z;
        double r2616168 = fma(r2616165, r2616166, r2616167);
        double r2616169 = 27464.7644705;
        double r2616170 = fma(r2616165, r2616168, r2616169);
        double r2616171 = 230661.510616;
        double r2616172 = fma(r2616165, r2616170, r2616171);
        double r2616173 = t;
        double r2616174 = fma(r2616172, r2616165, r2616173);
        double r2616175 = a;
        double r2616176 = r2616165 + r2616175;
        double r2616177 = b;
        double r2616178 = fma(r2616176, r2616165, r2616177);
        double r2616179 = c;
        double r2616180 = fma(r2616165, r2616178, r2616179);
        double r2616181 = i;
        double r2616182 = fma(r2616180, r2616165, r2616181);
        double r2616183 = cbrt(r2616182);
        double r2616184 = r2616183 * r2616183;
        double r2616185 = r2616174 / r2616184;
        double r2616186 = r2616185 / r2616183;
        return r2616186;
}

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

    \[\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. Simplified29.2

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, 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 add-cube-cbrt29.8

    \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}\]
  5. Applied associate-/r*29.8

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

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}}{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y + a, y, b\right), c\right), y, i\right)}}\]

Reproduce

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