x \cdot y + z \cdot \left(1 - y\right)
\left(x \cdot y + z \cdot 1\right) + z \cdot \left(-y\right)
double f(double x, double y, double z) {
double r660236 = x;
double r660237 = y;
double r660238 = r660236 * r660237;
double r660239 = z;
double r660240 = 1.0;
double r660241 = r660240 - r660237;
double r660242 = r660239 * r660241;
double r660243 = r660238 + r660242;
return r660243;
}
double f(double x, double y, double z) {
double r660244 = x;
double r660245 = y;
double r660246 = r660244 * r660245;
double r660247 = z;
double r660248 = 1.0;
double r660249 = r660247 * r660248;
double r660250 = r660246 + r660249;
double r660251 = -r660245;
double r660252 = r660247 * r660251;
double r660253 = r660250 + r660252;
return r660253;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied sub-neg0.0
Applied distribute-lft-in0.0
Applied associate-+r+0.0
Final simplification0.0
herbie shell --seed 2020045
(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 y))))