Average Error: 0.0 → 0.0
Time: 7.1s
Precision: 64
\[\left(x \cdot y + z \cdot t\right) + a \cdot b\]
\[x \cdot y + \left(z \cdot t + a \cdot b\right)\]
\left(x \cdot y + z \cdot t\right) + a \cdot b
x \cdot y + \left(z \cdot t + a \cdot b\right)
double f(double x, double y, double z, double t, double a, double b) {
        double r128555 = x;
        double r128556 = y;
        double r128557 = r128555 * r128556;
        double r128558 = z;
        double r128559 = t;
        double r128560 = r128558 * r128559;
        double r128561 = r128557 + r128560;
        double r128562 = a;
        double r128563 = b;
        double r128564 = r128562 * r128563;
        double r128565 = r128561 + r128564;
        return r128565;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r128566 = x;
        double r128567 = y;
        double r128568 = r128566 * r128567;
        double r128569 = z;
        double r128570 = t;
        double r128571 = r128569 * r128570;
        double r128572 = a;
        double r128573 = b;
        double r128574 = r128572 * r128573;
        double r128575 = r128571 + r128574;
        double r128576 = r128568 + r128575;
        return r128576;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(x \cdot y + z \cdot t\right) + a \cdot b\]
  2. Using strategy rm
  3. Applied associate-+l+0.0

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

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

Reproduce

herbie shell --seed 2020002 
(FPCore (x y z t a b)
  :name "Linear.V3:$cdot from linear-1.19.1.3, B"
  :precision binary64
  (+ (+ (* x y) (* z t)) (* a b)))