Initial program 7.1
\[\left(\left(x - 1\right) \cdot \log y + \left(z - 1\right) \cdot \log \left(1 - y\right)\right) - t
\]
Simplified0.1
\[\leadsto \color{blue}{\left(x + -1\right) \cdot \log y - \mathsf{fma}\left(\mathsf{log1p}\left(-y\right), 1 - z, t\right)}
\]
Proof
(-.f64 (*.f64 (+.f64 x -1) (log.f64 y)) (fma.f64 (log1p.f64 (neg.f64 y)) (-.f64 1 z) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (+.f64 x (Rewrite<= metadata-eval (neg.f64 1))) (log.f64 y)) (fma.f64 (log1p.f64 (neg.f64 y)) (-.f64 1 z) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (Rewrite<= sub-neg_binary64 (-.f64 x 1)) (log.f64 y)) (fma.f64 (log1p.f64 (neg.f64 y)) (-.f64 1 z) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (Rewrite<= log1p-def_binary64 (log.f64 (+.f64 1 (neg.f64 y)))) (-.f64 1 z) t)): 34 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (Rewrite<= sub-neg_binary64 (-.f64 1 y))) (-.f64 1 z) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (-.f64 1 y)) (Rewrite<= unsub-neg_binary64 (+.f64 1 (neg.f64 z))) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (-.f64 1 y)) (Rewrite=> +-commutative_binary64 (+.f64 (neg.f64 z) 1)) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (-.f64 1 y)) (+.f64 (Rewrite=> neg-sub0_binary64 (-.f64 0 z)) 1) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (-.f64 1 y)) (Rewrite<= associate--r-_binary64 (-.f64 0 (-.f64 z 1))) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (-.f64 1 y)) (Rewrite<= neg-sub0_binary64 (neg.f64 (-.f64 z 1))) t)): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (fma.f64 (log.f64 (-.f64 1 y)) (neg.f64 (-.f64 z 1)) (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 t))))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (log.f64 (-.f64 1 y)) (neg.f64 (-.f64 z 1))) (neg.f64 t)))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 (-.f64 z 1)) (log.f64 (-.f64 1 y)))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (*.f64 (Rewrite=> neg-sub0_binary64 (-.f64 0 (-.f64 z 1))) (log.f64 (-.f64 1 y))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (*.f64 (Rewrite=> associate--r-_binary64 (+.f64 (-.f64 0 z) 1)) (log.f64 (-.f64 1 y))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (*.f64 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 z)) 1) (log.f64 (-.f64 1 y))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (log.f64 (-.f64 1 y)) (*.f64 (neg.f64 z) (log.f64 (-.f64 1 y))))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (log.f64 (-.f64 1 y)) (*.f64 z (log.f64 (-.f64 1 y))))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (-.f64 (-.f64 (log.f64 (-.f64 1 y)) (Rewrite<= *-commutative_binary64 (*.f64 (log.f64 (-.f64 1 y)) z))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (Rewrite<= associate--r+_binary64 (-.f64 (log.f64 (-.f64 1 y)) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) z) (neg.f64 t))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (log.f64 (-.f64 1 y))) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) z) (neg.f64 t)))): 0 points increase in error, 0 points decrease in error
(+.f64 (-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (Rewrite<= *-lft-identity_binary64 (*.f64 1 (log.f64 (-.f64 1 y))))) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) z) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite=> cancel-sign-sub-inv_binary64 (+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (*.f64 (neg.f64 1) (log.f64 (-.f64 1 y))))) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) z) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (Rewrite<= *-commutative_binary64 (*.f64 (log.f64 (-.f64 1 y)) (neg.f64 1)))) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) z) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+r+_binary64 (+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) (neg.f64 1)) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) z) (neg.f64 t))))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (*.f64 (log.f64 (-.f64 1 y)) (neg.f64 1)) (*.f64 (log.f64 (-.f64 1 y)) z)) (neg.f64 t)))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (+.f64 (Rewrite<= distribute-lft-in_binary64 (*.f64 (log.f64 (-.f64 1 y)) (+.f64 (neg.f64 1) z))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) (Rewrite<= +-commutative_binary64 (+.f64 z (neg.f64 1)))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (+.f64 (*.f64 (log.f64 (-.f64 1 y)) (Rewrite<= sub-neg_binary64 (-.f64 z 1))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (-.f64 z 1) (log.f64 (-.f64 1 y)))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (*.f64 (-.f64 z 1) (log.f64 (-.f64 1 y)))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(Rewrite<= sub-neg_binary64 (-.f64 (+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (*.f64 (-.f64 z 1) (log.f64 (-.f64 1 y)))) t)): 0 points increase in error, 0 points decrease in error
Taylor expanded in x around 0 7.1
\[\leadsto \color{blue}{\left(\log y \cdot x + -1 \cdot \log y\right) - \left(t + \left(1 - z\right) \cdot \log \left(1 - y\right)\right)}
\]
Simplified0.1
\[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{log1p}\left(-y\right), -1 + z, \log y \cdot \left(-1 + x\right) - t\right)}
\]
Proof
(fma.f64 (log1p.f64 (neg.f64 y)) (+.f64 -1 z) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (Rewrite<= log1p-def_binary64 (log.f64 (+.f64 1 (neg.f64 y)))) (+.f64 -1 z) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 34 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (Rewrite<= sub-neg_binary64 (-.f64 1 y))) (+.f64 -1 z) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (+.f64 (Rewrite<= metadata-eval (-.f64 0 1)) z) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (+.f64 (-.f64 (Rewrite<= metadata-eval (log.f64 1)) 1) z) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (Rewrite<= associate--r-_binary64 (-.f64 (log.f64 1) (-.f64 1 z))) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (-.f64 (Rewrite=> metadata-eval 0) (-.f64 1 z)) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (Rewrite<= neg-sub0_binary64 (neg.f64 (-.f64 1 z))) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (-.f64 1 z))) (-.f64 (*.f64 (log.f64 y) (+.f64 -1 x)) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (-.f64 (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 -1 (log.f64 y)) (*.f64 x (log.f64 y)))) t)): 0 points increase in error, 1 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (-.f64 (+.f64 (*.f64 -1 (log.f64 y)) (Rewrite<= *-commutative_binary64 (*.f64 (log.f64 y) x))) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 y)))) t)): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (Rewrite=> sub-neg_binary64 (+.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 y))) (neg.f64 t)))): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (+.f64 (+.f64 (Rewrite=> *-commutative_binary64 (*.f64 x (log.f64 y))) (*.f64 -1 (log.f64 y))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (+.f64 (Rewrite=> distribute-rgt-out_binary64 (*.f64 (log.f64 y) (+.f64 x -1))) (neg.f64 t))): 1 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (+.f64 (*.f64 (log.f64 y) (+.f64 x (Rewrite<= metadata-eval (neg.f64 1)))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (+.f64 (*.f64 (log.f64 y) (Rewrite<= sub-neg_binary64 (-.f64 x 1))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (-.f64 x 1) (log.f64 y))) (neg.f64 t))): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 t) (*.f64 (-.f64 x 1) (log.f64 y))))): 0 points increase in error, 0 points decrease in error
(fma.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z)) (+.f64 (Rewrite<= mul-1-neg_binary64 (*.f64 -1 t)) (*.f64 (-.f64 x 1) (log.f64 y)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= fma-def_binary64 (+.f64 (*.f64 (log.f64 (-.f64 1 y)) (*.f64 -1 (-.f64 1 z))) (+.f64 (*.f64 -1 t) (*.f64 (-.f64 x 1) (log.f64 y))))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 (log.f64 (-.f64 1 y)) (Rewrite<= neg-mul-1_binary64 (neg.f64 (-.f64 1 z)))) (+.f64 (*.f64 -1 t) (*.f64 (-.f64 x 1) (log.f64 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 (log.f64 (-.f64 1 y)) (-.f64 1 z)))) (+.f64 (*.f64 -1 t) (*.f64 (-.f64 x 1) (log.f64 y)))): 0 points increase in error, 0 points decrease in error
(+.f64 (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))) (+.f64 (*.f64 -1 t) (*.f64 (-.f64 x 1) (log.f64 y)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 (+.f64 (*.f64 -1 t) (*.f64 (-.f64 x 1) (log.f64 y))) (neg.f64 (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y)))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= sub-neg_binary64 (-.f64 (+.f64 (*.f64 -1 t) (*.f64 (-.f64 x 1) (log.f64 y))) (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (Rewrite=> mul-1-neg_binary64 (neg.f64 t)) (*.f64 (-.f64 x 1) (log.f64 y))) (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (neg.f64 t))) (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite<= sub-neg_binary64 (-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) t)) (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y)))): 0 points increase in error, 0 points decrease in error
(Rewrite=> associate--l-_binary64 (-.f64 (*.f64 (-.f64 x 1) (log.f64 y)) (+.f64 t (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y)))))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite=> *-commutative_binary64 (*.f64 (log.f64 y) (-.f64 x 1))) (+.f64 t (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (log.f64 y) (Rewrite=> sub-neg_binary64 (+.f64 x (neg.f64 1)))) (+.f64 t (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (*.f64 (log.f64 y) (+.f64 x (Rewrite=> metadata-eval -1))) (+.f64 t (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 x (log.f64 y)) (*.f64 -1 (log.f64 y)))) (+.f64 t (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))): 0 points increase in error, 1 points decrease in error
(-.f64 (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (log.f64 y) x)) (*.f64 -1 (log.f64 y))) (+.f64 t (*.f64 (-.f64 1 z) (log.f64 (-.f64 1 y))))): 0 points increase in error, 0 points decrease in error
Final simplification0.1
\[\leadsto \mathsf{fma}\left(\mathsf{log1p}\left(-y\right), -1 + z, \log y \cdot \left(-1 + x\right) - t\right)
\]