Initial program 15.8
\[{\left(x + \varepsilon\right)}^{2} - {x}^{2}
\]
Simplified15.8
\[\leadsto \color{blue}{{\left(x + \varepsilon\right)}^{2} - x \cdot x}
\]
Proof
(-.f64 (pow.f64 (+.f64 x eps) 2) (*.f64 x x)): 0 points increase in error, 0 points decrease in error
(-.f64 (pow.f64 (+.f64 x eps) 2) (Rewrite<= unpow2_binary64 (pow.f64 x 2))): 0 points increase in error, 0 points decrease in error
Taylor expanded in x around 0 0.0
\[\leadsto \color{blue}{{\varepsilon}^{2} + 2 \cdot \left(\varepsilon \cdot x\right)}
\]
Simplified0.0
\[\leadsto \color{blue}{\varepsilon \cdot \left(\varepsilon + \left(x + x\right)\right)}
\]
Proof
(*.f64 eps (+.f64 eps (+.f64 x x))): 0 points increase in error, 0 points decrease in error
(*.f64 eps (+.f64 eps (Rewrite=> count-2_binary64 (*.f64 2 x)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 eps eps) (*.f64 (*.f64 2 x) eps))): 3 points increase in error, 2 points decrease in error
(+.f64 (Rewrite<= unpow2_binary64 (pow.f64 eps 2)) (*.f64 (*.f64 2 x) eps)): 0 points increase in error, 0 points decrease in error
(+.f64 (pow.f64 eps 2) (Rewrite<= associate-*r*_binary64 (*.f64 2 (*.f64 x eps)))): 3 points increase in error, 0 points decrease in error
(+.f64 (pow.f64 eps 2) (*.f64 2 (Rewrite<= *-commutative_binary64 (*.f64 eps x)))): 0 points increase in error, 0 points decrease in error
Final simplification0.0
\[\leadsto \varepsilon \cdot \left(\varepsilon + \left(x + x\right)\right)
\]