Initial program 0.1
\[\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
\]
Taylor expanded in x around 0 0.1
\[\leadsto \left(\color{blue}{\left(-1 \cdot \left(\left(0.5 + y\right) \cdot \log y\right) + x\right)} + y\right) - z
\]
Simplified0.1
\[\leadsto \left(\color{blue}{\mathsf{fma}\left(\log y, -0.5 - y, x\right)} + y\right) - z
\]
Proof
(fma.f64 (log.f64 y) (-.f64 -1/2 y) x): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 y) (Rewrite<= unsub-neg_binary64 (+.f64 -1/2 (neg.f64 y))) x): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 y) (+.f64 (Rewrite<= metadata-eval (neg.f64 1/2)) (neg.f64 y)) x): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 y) (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 1/2 y))) x): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 y) (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (+.f64 1/2 y))) x): 0 points increase in error, 0 points decrease in error
(Rewrite<= fma-def_binary64 (+.f64 (*.f64 (log.f64 y) (*.f64 -1 (+.f64 1/2 y))) x)): 1 points increase in error, 1 points decrease in error
(+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 -1 (+.f64 1/2 y)) (log.f64 y))) x): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= associate-*r*_binary64 (*.f64 -1 (*.f64 (+.f64 1/2 y) (log.f64 y)))) x): 0 points increase in error, 0 points decrease in error
Final simplification0.1
\[\leadsto \left(y + \mathsf{fma}\left(\log y, -0.5 - y, x\right)\right) - z
\]