x \cdot y + z \cdot \left(1 - y\right)
\mathsf{fma}\left(1, z, x \cdot y\right) + \left(-y\right) \cdot zdouble f(double x, double y, double z) {
double r26354725 = x;
double r26354726 = y;
double r26354727 = r26354725 * r26354726;
double r26354728 = z;
double r26354729 = 1.0;
double r26354730 = r26354729 - r26354726;
double r26354731 = r26354728 * r26354730;
double r26354732 = r26354727 + r26354731;
return r26354732;
}
double f(double x, double y, double z) {
double r26354733 = 1.0;
double r26354734 = z;
double r26354735 = x;
double r26354736 = y;
double r26354737 = r26354735 * r26354736;
double r26354738 = fma(r26354733, r26354734, r26354737);
double r26354739 = -r26354736;
double r26354740 = r26354739 * r26354734;
double r26354741 = r26354738 + r26354740;
return r26354741;
}




Bits error versus x




Bits error versus y




Bits error versus z
| 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
Simplified0.0
Final simplification0.0
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.TwoD.Segment:bezierClip from diagrams-lib-1.3.0.3"
:herbie-target
(- z (* (- z x) y))
(+ (* x y) (* z (- 1.0 y))))