Initial program 0.1
\[x \cdot x - \left(y \cdot 4\right) \cdot z
\]
Simplified0.1
\[\leadsto \color{blue}{\mathsf{fma}\left(x, x, z \cdot \left(y \cdot -4\right)\right)}
\]
Proof
(fma.f64 x x (*.f64 z (*.f64 y -4))): 0 points increase in error, 0 points decrease in error
(fma.f64 x x (*.f64 z (*.f64 y (Rewrite<= metadata-eval (neg.f64 4))))): 0 points increase in error, 0 points decrease in error
(fma.f64 x x (*.f64 z (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 y 4))))): 0 points increase in error, 0 points decrease in error
(fma.f64 x x (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 z (*.f64 y 4))))): 0 points increase in error, 0 points decrease in error
(fma.f64 x x (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 y 4) z)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= fma-neg_binary64 (-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))): 3 points increase in error, 0 points decrease in error
Final simplification0.1
\[\leadsto \mathsf{fma}\left(x, x, z \cdot \left(y \cdot -4\right)\right)
\]