Initial program 0.2
\[\left(3 \cdot \left(2 - x \cdot 3\right)\right) \cdot x
\]
Simplified0.2
\[\leadsto \color{blue}{x \cdot \left(6 + x \cdot -9\right)}
\]
Proof
(*.f64 x (+.f64 6 (*.f64 x -9))): 0 points increase in error, 0 points decrease in error
(*.f64 x (+.f64 (Rewrite<= metadata-eval (*.f64 2 3)) (*.f64 x -9))): 0 points increase in error, 0 points decrease in error
(*.f64 x (+.f64 (*.f64 2 3) (*.f64 x (Rewrite<= metadata-eval (*.f64 -3 3))))): 0 points increase in error, 0 points decrease in error
(*.f64 x (+.f64 (*.f64 2 3) (*.f64 x (*.f64 (Rewrite<= metadata-eval (neg.f64 3)) 3)))): 0 points increase in error, 0 points decrease in error
(*.f64 x (+.f64 (*.f64 2 3) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 x (neg.f64 3)) 3)))): 12 points increase in error, 5 points decrease in error
(*.f64 x (+.f64 (*.f64 2 3) (*.f64 (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 x 3))) 3))): 0 points increase in error, 0 points decrease in error
(*.f64 x (+.f64 (*.f64 2 3) (*.f64 (Rewrite<= distribute-lft-neg-out_binary64 (*.f64 (neg.f64 x) 3)) 3))): 0 points increase in error, 0 points decrease in error
(*.f64 x (Rewrite<= distribute-rgt-in_binary64 (*.f64 3 (+.f64 2 (*.f64 (neg.f64 x) 3))))): 6 points increase in error, 1 points decrease in error
(*.f64 x (*.f64 3 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 2 (*.f64 x 3))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= *-commutative_binary64 (*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)): 0 points increase in error, 0 points decrease in error
Applied egg-rr0.1
\[\leadsto \color{blue}{\mathsf{fma}\left(x, 6, -9 \cdot \left(x \cdot x\right)\right)}
\]
Final simplification0.1
\[\leadsto \mathsf{fma}\left(x, 6, -9 \cdot \left(x \cdot x\right)\right)
\]