Average Error: 0.0 → 0.0
Time: 7.1s
Precision: 64
\[x \cdot y + z \cdot t\]
\[x \cdot y + z \cdot t\]
x \cdot y + z \cdot t
x \cdot y + z \cdot t
double f(double x, double y, double z, double t) {
        double r87530 = x;
        double r87531 = y;
        double r87532 = r87530 * r87531;
        double r87533 = z;
        double r87534 = t;
        double r87535 = r87533 * r87534;
        double r87536 = r87532 + r87535;
        return r87536;
}

double f(double x, double y, double z, double t) {
        double r87537 = x;
        double r87538 = y;
        double r87539 = r87537 * r87538;
        double r87540 = z;
        double r87541 = t;
        double r87542 = r87540 * r87541;
        double r87543 = r87539 + r87542;
        return r87543;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[x \cdot y + z \cdot t\]
  2. Simplified0.0

    \[\leadsto \color{blue}{z \cdot t + x \cdot y}\]
  3. Final simplification0.0

    \[\leadsto x \cdot y + z \cdot t\]

Reproduce

herbie shell --seed 2019194 
(FPCore (x y z t)
  :name "Linear.V2:$cdot from linear-1.19.1.3, A"
  (+ (* x y) (* z t)))