Average Error: 0.0 → 0.0
Time: 25.9s
Precision: 64
\[x + y \cdot \left(z + x\right)\]
\[x + \left(x + z\right) \cdot y\]
x + y \cdot \left(z + x\right)
x + \left(x + z\right) \cdot y
double f(double x, double y, double z) {
        double r7191805 = x;
        double r7191806 = y;
        double r7191807 = z;
        double r7191808 = r7191807 + r7191805;
        double r7191809 = r7191806 * r7191808;
        double r7191810 = r7191805 + r7191809;
        return r7191810;
}

double f(double x, double y, double z) {
        double r7191811 = x;
        double r7191812 = z;
        double r7191813 = r7191811 + r7191812;
        double r7191814 = y;
        double r7191815 = r7191813 * r7191814;
        double r7191816 = r7191811 + r7191815;
        return r7191816;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[x + y \cdot \left(z + x\right)\]
  2. Final simplification0.0

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

Reproduce

herbie shell --seed 2019171 
(FPCore (x y z)
  :name "Main:bigenough2 from A"
  (+ x (* y (+ z x))))