Initial program 0.2
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\]
Taylor expanded in a around 0 0.0
\[\leadsto \left(\color{blue}{\left(2 \cdot \left({a}^{2} \cdot {b}^{2}\right) + \left({a}^{4} + {b}^{4}\right)\right)} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\]
Simplified0.1
\[\leadsto \left(\color{blue}{\mathsf{fma}\left(b \cdot b, \mathsf{fma}\left(b, b, 2 \cdot \left(a \cdot a\right)\right), {a}^{4}\right)} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\]
Proof
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(fma.f64 (Rewrite<= unpow2 (pow.f64 b 2)) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4)): 1 points increase in error, 0 points decrease in error
(fma.f64 (pow.f64 b 2) (fma.f64 b b (*.f64 2 (Rewrite<= unpow2 (pow.f64 a 2)))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(fma.f64 (pow.f64 b 2) (Rewrite<= fma-def (+.f64 (*.f64 b b) (*.f64 2 (pow.f64 a 2)))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(fma.f64 (pow.f64 b 2) (+.f64 (Rewrite<= unpow2 (pow.f64 b 2)) (*.f64 2 (pow.f64 a 2))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(Rewrite<= fma-def (+.f64 (*.f64 (pow.f64 b 2) (+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))) (pow.f64 a 4))): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= distribute-rgt-out (+.f64 (*.f64 (pow.f64 b 2) (pow.f64 b 2)) (*.f64 (*.f64 2 (pow.f64 a 2)) (pow.f64 b 2)))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (Rewrite=> pow-sqr (pow.f64 b (*.f64 2 2))) (*.f64 (*.f64 2 (pow.f64 a 2)) (pow.f64 b 2))) (pow.f64 a 4)): 14 points increase in error, 26 points decrease in error
(+.f64 (+.f64 (pow.f64 b (Rewrite=> metadata-eval 4)) (*.f64 (*.f64 2 (pow.f64 a 2)) (pow.f64 b 2))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (pow.f64 b 4) (Rewrite<= associate-*r* (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= +-commutative (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))) (pow.f64 a 4)): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+r+ (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (Rewrite=> +-commutative (+.f64 (pow.f64 a 4) (pow.f64 b 4)))): 0 points increase in error, 0 points decrease in error
Applied egg-rr0.1
\[\leadsto \left(\color{blue}{\left({a}^{4} + b \cdot \left(b \cdot \mathsf{fma}\left(b, b, 2 \cdot \left(a \cdot a\right)\right)\right)\right)} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\]
Final simplification0.1
\[\leadsto \left(\left({a}^{4} + b \cdot \left(b \cdot \mathsf{fma}\left(b, b, 2 \cdot \left(a \cdot a\right)\right)\right)\right) + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(a + 3\right)\right)\right) + -1
\]