Average Error: 0.0 → 0.0
Time: 3.2s
Precision: 64
\[x \cdot y + \left(1 - x\right) \cdot z\]
\[x \cdot y + \left(1 - x\right) \cdot z\]
x \cdot y + \left(1 - x\right) \cdot z
x \cdot y + \left(1 - x\right) \cdot z
double f(double x, double y, double z) {
        double r244736 = x;
        double r244737 = y;
        double r244738 = r244736 * r244737;
        double r244739 = 1.0;
        double r244740 = r244739 - r244736;
        double r244741 = z;
        double r244742 = r244740 * r244741;
        double r244743 = r244738 + r244742;
        return r244743;
}

double f(double x, double y, double z) {
        double r244744 = x;
        double r244745 = y;
        double r244746 = r244744 * r244745;
        double r244747 = 1.0;
        double r244748 = r244747 - r244744;
        double r244749 = z;
        double r244750 = r244748 * r244749;
        double r244751 = r244746 + r244750;
        return r244751;
}

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

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

Reproduce

herbie shell --seed 2020089 
(FPCore (x y z)
  :name "Diagrams.Backend.Rasterific:$crender from diagrams-rasterific-1.3.1.3"
  :precision binary64
  (+ (* x y) (* (- 1 x) z)))