Average Error: 0.0 → 0.0
Time: 7.9s
Precision: 64
\[\left(1 - x\right) \cdot y + x \cdot z\]
\[\left(1 - x\right) \cdot y + x \cdot z\]
\left(1 - x\right) \cdot y + x \cdot z
\left(1 - x\right) \cdot y + x \cdot z
double f(double x, double y, double z) {
        double r755186 = 1.0;
        double r755187 = x;
        double r755188 = r755186 - r755187;
        double r755189 = y;
        double r755190 = r755188 * r755189;
        double r755191 = z;
        double r755192 = r755187 * r755191;
        double r755193 = r755190 + r755192;
        return r755193;
}

double f(double x, double y, double z) {
        double r755194 = 1.0;
        double r755195 = x;
        double r755196 = r755194 - r755195;
        double r755197 = y;
        double r755198 = r755196 * r755197;
        double r755199 = z;
        double r755200 = r755195 * r755199;
        double r755201 = r755198 + r755200;
        return r755201;
}

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

Target

Original0.0
Target0.0
Herbie0.0
\[y - x \cdot \left(y - z\right)\]

Derivation

  1. Initial program 0.0

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

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

Reproduce

herbie shell --seed 2020045 
(FPCore (x y z)
  :name "Diagrams.Color.HSV:lerp  from diagrams-contrib-1.3.0.5"
  :precision binary64

  :herbie-target
  (- y (* x (- y z)))

  (+ (* (- 1 x) y) (* x z)))