Initial program 0.1
\[\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
\]
Simplified0.1
\[\leadsto \color{blue}{d1 \cdot \left(3 + \left(d2 + d3\right)\right)}
\]
Proof
(*.f64 d1 (+.f64 3 (+.f64 d2 d3))): 0 points increase in error, 0 points decrease in error
(*.f64 d1 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 3 d2) d3))): 0 points increase in error, 0 points decrease in error
(Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 d1 (+.f64 3 d2)) (*.f64 d1 d3))): 3 points increase in error, 5 points decrease in error
(+.f64 (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2))) (*.f64 d1 d3)): 2 points increase in error, 1 points decrease in error
Applied egg-rr0.0
\[\leadsto \color{blue}{\mathsf{fma}\left(d1, 3, d1 \cdot \left(d2 + d3\right)\right)}
\]
Final simplification0.0
\[\leadsto \mathsf{fma}\left(d1, 3, d1 \cdot \left(d2 + d3\right)\right)
\]