Average Error: 0.0 → 0.0
Time: 44.4s
Precision: 64
\[x \cdot y + \left(x - 1.0\right) \cdot z\]
\[x \cdot y + \left(x - 1.0\right) \cdot z\]
x \cdot y + \left(x - 1.0\right) \cdot z
x \cdot y + \left(x - 1.0\right) \cdot z
double f(double x, double y, double z) {
        double r10309140 = x;
        double r10309141 = y;
        double r10309142 = r10309140 * r10309141;
        double r10309143 = 1.0;
        double r10309144 = r10309140 - r10309143;
        double r10309145 = z;
        double r10309146 = r10309144 * r10309145;
        double r10309147 = r10309142 + r10309146;
        return r10309147;
}

double f(double x, double y, double z) {
        double r10309148 = x;
        double r10309149 = y;
        double r10309150 = r10309148 * r10309149;
        double r10309151 = 1.0;
        double r10309152 = r10309148 - r10309151;
        double r10309153 = z;
        double r10309154 = r10309152 * r10309153;
        double r10309155 = r10309150 + r10309154;
        return r10309155;
}

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 \cdot y + \left(x - 1.0\right) \cdot z\]
  2. Final simplification0.0

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

Reproduce

herbie shell --seed 2019165 
(FPCore (x y z)
  :name "Graphics.Rendering.Chart.Drawing:drawTextsR from Chart-1.5.3"
  (+ (* x y) (* (- x 1.0) z)))