Initial program 0.0
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
\]
Simplified0.0
\[\leadsto \color{blue}{\cos re \cdot \mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right)}
\]
Proof
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))): 0 points increase in error, 0 points decrease in error
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 (Rewrite<= metadata-eval (*.f64 1/2 1)) (exp.f64 im)))): 0 points increase in error, 0 points decrease in error
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (Rewrite<= associate-*r/_binary64 (*.f64 1/2 (/.f64 1 (exp.f64 im)))))): 0 points increase in error, 0 points decrease in error
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (*.f64 1/2 (Rewrite<= exp-neg_binary64 (exp.f64 (neg.f64 im)))))): 1 points increase in error, 1 points decrease in error
(*.f64 (cos.f64 re) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (exp.f64 (neg.f64 im)))))): 0 points increase in error, 0 points decrease in error
(*.f64 (cos.f64 re) (Rewrite<= distribute-lft-in_binary64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))): 0 points increase in error, 0 points decrease in error
(*.f64 (cos.f64 re) (*.f64 1/2 (Rewrite<= +-commutative_binary64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (cos.f64 re) 1/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))): 0 points increase in error, 0 points decrease in error
(*.f64 (Rewrite<= *-commutative_binary64 (*.f64 1/2 (cos.f64 re))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))): 0 points increase in error, 0 points decrease in error
Applied egg-rr0.0
\[\leadsto \color{blue}{\left(0.5 \cdot e^{im}\right) \cdot \cos re + \frac{0.5}{e^{im}} \cdot \cos re}
\]
Final simplification0.0
\[\leadsto \left(0.5 \cdot e^{im}\right) \cdot \cos re + \cos re \cdot \frac{0.5}{e^{im}}
\]