Initial program 0.0
\[\left(x + y\right) - x \cdot y
\]
Simplified0.0
\[\leadsto \color{blue}{\mathsf{fma}\left(y, 1 - x, x\right)}
\]
Proof
(fma.f64 y (-.f64 1 x) x): 0 points increase in error, 0 points decrease in error
(fma.f64 y (Rewrite<= unsub-neg_binary64 (+.f64 1 (neg.f64 x))) x): 0 points increase in error, 0 points decrease in error
(fma.f64 y (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 x) 1)) x): 0 points increase in error, 0 points decrease in error
(Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) x)): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (neg.f64 x) 1) y)) x): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 y (*.f64 (neg.f64 x) y))) x): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 y (*.f64 x y))) x): 0 points increase in error, 0 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 x (-.f64 y (*.f64 x y)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate--l+_binary64 (-.f64 (+.f64 x y) (*.f64 x y))): 0 points increase in error, 0 points decrease in error
Final simplification0.0
\[\leadsto \mathsf{fma}\left(y, 1 - x, x\right)
\]