Average Error: 0.0 → 0.0
Time: 40.3s
Precision: 64
\[\left(\left(x \cdot y + z \cdot t\right) + a \cdot b\right) + c \cdot i\]
\[(i \cdot c + \left((a \cdot b + \left((x \cdot y + \left(t \cdot z\right))_*\right))_*\right))_*\]
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r6677308 = x;
        double r6677309 = y;
        double r6677310 = r6677308 * r6677309;
        double r6677311 = z;
        double r6677312 = t;
        double r6677313 = r6677311 * r6677312;
        double r6677314 = r6677310 + r6677313;
        double r6677315 = a;
        double r6677316 = b;
        double r6677317 = r6677315 * r6677316;
        double r6677318 = r6677314 + r6677317;
        double r6677319 = c;
        double r6677320 = i;
        double r6677321 = r6677319 * r6677320;
        double r6677322 = r6677318 + r6677321;
        return r6677322;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r6677323 = i;
        double r6677324 = c;
        double r6677325 = a;
        double r6677326 = b;
        double r6677327 = x;
        double r6677328 = y;
        double r6677329 = t;
        double r6677330 = z;
        double r6677331 = r6677329 * r6677330;
        double r6677332 = fma(r6677327, r6677328, r6677331);
        double r6677333 = fma(r6677325, r6677326, r6677332);
        double r6677334 = fma(r6677323, r6677324, r6677333);
        return r6677334;
}

\left(\left(x \cdot y + z \cdot t\right) + a \cdot b\right) + c \cdot i
(i \cdot c + \left((a \cdot b + \left((x \cdot y + \left(t \cdot z\right))_*\right))_*\right))_*

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 0.0

    \[\left(\left(x \cdot y + z \cdot t\right) + a \cdot b\right) + c \cdot i\]
  2. Simplified0.0

    \[\leadsto \color{blue}{(i \cdot c + \left((a \cdot b + \left((x \cdot y + \left(z \cdot t\right))_*\right))_*\right))_*}\]
  3. Final simplification0.0

    \[\leadsto (i \cdot c + \left((a \cdot b + \left((x \cdot y + \left(t \cdot z\right))_*\right))_*\right))_*\]

Reproduce

herbie shell --seed 2019102 +o rules:numerics
(FPCore (x y z t a b c i)
  :name "Linear.V4:$cdot from linear-1.19.1.3"
  (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)))