Average Error: 0.0 → 0.0
Time: 4.1s
Precision: binary64
Cost: 448
\[x \cdot y + z \cdot \left(1 - y\right)\]
\[z + y \cdot \left(x - z\right)\]
x \cdot y + z \cdot \left(1 - y\right)
z + y \cdot \left(x - z\right)
(FPCore (x y z) :precision binary64 (+ (* x y) (* z (- 1.0 y))))
(FPCore (x y z) :precision binary64 (+ z (* y (- x z))))
double code(double x, double y, double z) {
	return (x * y) + (z * (1.0 - y));
}
double code(double x, double y, double z) {
	return z + (y * (x - z));
}

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
\[z - \left(z - x\right) \cdot y\]

Alternatives

Alternative 1
Error25.9
Cost20672
\[z + \frac{y}{\sqrt[3]{z + x} \cdot \sqrt[3]{z + x}} \cdot \frac{x \cdot x - z \cdot z}{\sqrt[3]{z + x}}\]
Alternative 2
Error40.5
Cost13312
\[\sqrt[3]{{\left(z + y \cdot \left(x - z\right)\right)}^{3}}\]
Alternative 3
Error27.7
Cost960
\[z + \frac{y \cdot \left(x \cdot x - z \cdot z\right)}{z + x}\]
Alternative 4
Error0.2
Cost704
\[z + \frac{1}{\frac{\frac{1}{x - z}}{y}}\]
Alternative 5
Error0.2
Cost576
\[z + \frac{y}{\frac{1}{x - z}}\]
Alternative 6
Error0.0
Cost576
\[z \cdot \left(1 - y\right) + y \cdot x\]
Alternative 7
Error12.2
Cost448
\[z + \frac{y}{\frac{1}{x}}\]
Alternative 8
Error23.9
Cost320
\[z - z \cdot y\]
Alternative 9
Error23.9
Cost320
\[z \cdot \left(1 - y\right)\]
Alternative 10
Error27.8
Cost320
\[y \cdot \left(x - z\right)\]
Alternative 11
Error12.1
Cost320
\[z + y \cdot x\]
Alternative 12
Error39.2
Cost192
\[y \cdot x\]
Alternative 13
Error35.4
Cost64
\[z\]
Alternative 14
Error61.8
Cost64
\[1\]
Alternative 15
Error62.2
Cost64
\[0\]
Alternative 16
Error61.8
Cost64
\[-1\]

Error

Derivation

  1. Initial program 0.0

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

    \[\leadsto \color{blue}{z + y \cdot \left(x - z\right)}\]
  3. Simplified0.0

    \[\leadsto \color{blue}{z + y \cdot \left(x - z\right)}\]
  4. Final simplification0.0

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

Reproduce

herbie shell --seed 2021042 
(FPCore (x y z)
  :name "Diagrams.TwoD.Segment:bezierClip from diagrams-lib-1.3.0.3"
  :precision binary64

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

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