Initial program 2.8
\[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|
\]
Simplified0.0
\[\leadsto \color{blue}{\left|\frac{\mathsf{fma}\left(x, z, -4 - x\right)}{y}\right|}
\]
Proof
(fabs.f64 (/.f64 (fma.f64 x z (-.f64 -4 x)) y)): 0 points increase in error, 0 points decrease in error
(fabs.f64 (/.f64 (fma.f64 x z (-.f64 (Rewrite<= metadata-eval (neg.f64 4)) x)) y)): 0 points increase in error, 0 points decrease in error
(fabs.f64 (/.f64 (fma.f64 x z (Rewrite<= unsub-neg_binary64 (+.f64 (neg.f64 4) (neg.f64 x)))) y)): 0 points increase in error, 0 points decrease in error
(fabs.f64 (/.f64 (fma.f64 x z (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 4 x)))) y)): 0 points increase in error, 0 points decrease in error
(fabs.f64 (/.f64 (fma.f64 x z (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 x 4)))) y)): 0 points increase in error, 0 points decrease in error
(fabs.f64 (/.f64 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 x z) (+.f64 x 4))) y)): 1 points increase in error, 1 points decrease in error
(fabs.f64 (Rewrite=> div-sub_binary64 (-.f64 (/.f64 (*.f64 x z) y) (/.f64 (+.f64 x 4) y)))): 1 points increase in error, 0 points decrease in error
(fabs.f64 (-.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 x y) z)) (/.f64 (+.f64 x 4) y))): 17 points increase in error, 21 points decrease in error
(fabs.f64 (Rewrite<= *-rgt-identity_binary64 (*.f64 (-.f64 (*.f64 (/.f64 x y) z) (/.f64 (+.f64 x 4) y)) 1))): 0 points increase in error, 0 points decrease in error
(fabs.f64 (*.f64 (-.f64 (*.f64 (/.f64 x y) z) (/.f64 (+.f64 x 4) y)) (Rewrite<= metadata-eval (neg.f64 -1)))): 0 points increase in error, 0 points decrease in error
(Rewrite=> fabs-mul_binary64 (*.f64 (fabs.f64 (-.f64 (*.f64 (/.f64 x y) z) (/.f64 (+.f64 x 4) y))) (fabs.f64 (neg.f64 -1)))): 0 points increase in error, 0 points decrease in error
(*.f64 (Rewrite<= fabs-sub_binary64 (fabs.f64 (-.f64 (/.f64 (+.f64 x 4) y) (*.f64 (/.f64 x y) z)))) (fabs.f64 (neg.f64 -1))): 0 points increase in error, 0 points decrease in error
(*.f64 (fabs.f64 (-.f64 (/.f64 (+.f64 x 4) y) (*.f64 (/.f64 x y) z))) (fabs.f64 (Rewrite=> metadata-eval 1))): 0 points increase in error, 0 points decrease in error
(*.f64 (fabs.f64 (-.f64 (/.f64 (+.f64 x 4) y) (*.f64 (/.f64 x y) z))) (Rewrite=> metadata-eval 1)): 0 points increase in error, 0 points decrease in error
(Rewrite=> *-rgt-identity_binary64 (fabs.f64 (-.f64 (/.f64 (+.f64 x 4) y) (*.f64 (/.f64 x y) z)))): 0 points increase in error, 0 points decrease in error
Taylor expanded in x around -inf 0.1
\[\leadsto \left|\color{blue}{-1 \cdot \frac{\left(-1 \cdot z + 1\right) \cdot x}{y} - 4 \cdot \frac{1}{y}}\right|
\]
Simplified2.8
\[\leadsto \left|\color{blue}{\frac{-4}{y} - \frac{x}{y} \cdot \left(1 - z\right)}\right|
\]
Proof
(-.f64 (/.f64 -4 y) (*.f64 (/.f64 x y) (-.f64 1 z))): 0 points increase in error, 0 points decrease in error
(-.f64 (/.f64 (Rewrite<= metadata-eval (neg.f64 4)) y) (*.f64 (/.f64 x y) (-.f64 1 z))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite<= distribute-neg-frac_binary64 (neg.f64 (/.f64 4 y))) (*.f64 (/.f64 x y) (-.f64 1 z))): 0 points increase in error, 0 points decrease in error
(-.f64 (neg.f64 (/.f64 (Rewrite<= metadata-eval (*.f64 4 1)) y)) (*.f64 (/.f64 x y) (-.f64 1 z))): 0 points increase in error, 0 points decrease in error
(-.f64 (neg.f64 (Rewrite<= associate-*r/_binary64 (*.f64 4 (/.f64 1 y)))) (*.f64 (/.f64 x y) (-.f64 1 z))): 1 points increase in error, 0 points decrease in error
(-.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (*.f64 (/.f64 x y) (Rewrite<= unsub-neg_binary64 (+.f64 1 (neg.f64 z))))): 0 points increase in error, 0 points decrease in error
(-.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (*.f64 (/.f64 x y) (+.f64 1 (Rewrite<= mul-1-neg_binary64 (*.f64 -1 z))))): 0 points increase in error, 0 points decrease in error
(-.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (*.f64 (/.f64 x y) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 z) 1)))): 0 points increase in error, 0 points decrease in error
(-.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (Rewrite<= associate-/r/_binary64 (/.f64 x (/.f64 y (+.f64 (*.f64 -1 z) 1))))): 26 points increase in error, 14 points decrease in error
(-.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 x (+.f64 (*.f64 -1 z) 1)) y))): 25 points increase in error, 19 points decrease in error
(-.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 -1 z) 1) x)) y)): 0 points increase in error, 0 points decrease in error
(Rewrite<= unsub-neg_binary64 (+.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (neg.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1 z) 1) x) y)))): 0 points increase in error, 0 points decrease in error
(+.f64 (neg.f64 (*.f64 4 (/.f64 1 y))) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1 z) 1) x) y)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1 z) 1) x) y)) (neg.f64 (*.f64 4 (/.f64 1 y))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= sub-neg_binary64 (-.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 (*.f64 -1 z) 1) x) y)) (*.f64 4 (/.f64 1 y)))): 0 points increase in error, 0 points decrease in error
Taylor expanded in y around 0 0.0
\[\leadsto \left|\color{blue}{-1 \cdot \frac{4 + \left(1 - z\right) \cdot x}{y}}\right|
\]
Simplified0.0
\[\leadsto \left|\color{blue}{\frac{-4 - \left(1 - z\right) \cdot x}{y}}\right|
\]
Proof
(/.f64 (-.f64 -4 (*.f64 (-.f64 1 z) x)) y): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 -4 (Rewrite<= *-commutative_binary64 (*.f64 x (-.f64 1 z)))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite=> sub-neg_binary64 (+.f64 -4 (neg.f64 (*.f64 x (-.f64 1 z))))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (Rewrite<= metadata-eval (*.f64 -1 4)) (neg.f64 (*.f64 x (-.f64 1 z)))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 -1 4) (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (*.f64 x (-.f64 1 z))))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= distribute-lft-in_binary64 (*.f64 -1 (+.f64 4 (*.f64 x (-.f64 1 z))))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 -1 (Rewrite<= cancel-sign-sub_binary64 (-.f64 4 (*.f64 (neg.f64 x) (-.f64 1 z))))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 -1 (-.f64 4 (Rewrite<= *-commutative_binary64 (*.f64 (-.f64 1 z) (neg.f64 x))))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 -1 (-.f64 4 (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (-.f64 1 z) x))))) y): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 -1 (-.f64 4 (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 (-.f64 1 z) x))))) y): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 (-.f64 4 (*.f64 -1 (*.f64 (-.f64 1 z) x))) y))): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (/.f64 (-.f64 4 (Rewrite=> associate-*r*_binary64 (*.f64 (*.f64 -1 (-.f64 1 z)) x))) y)): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (/.f64 (-.f64 4 (*.f64 (Rewrite<= neg-mul-1_binary64 (neg.f64 (-.f64 1 z))) x)) y)): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (/.f64 (Rewrite=> cancel-sign-sub_binary64 (+.f64 4 (*.f64 (-.f64 1 z) x))) y)): 0 points increase in error, 0 points decrease in error
Taylor expanded in z around inf 0.0
\[\leadsto \left|\frac{-4 - \color{blue}{-1 \cdot \left(z \cdot x\right)}}{y}\right|
\]
Simplified0.0
\[\leadsto \left|\frac{-4 - \color{blue}{x \cdot \left(-z\right)}}{y}\right|
\]
Proof
(*.f64 x (neg.f64 z)): 0 points increase in error, 0 points decrease in error
(Rewrite=> *-commutative_binary64 (*.f64 (neg.f64 z) x)): 0 points increase in error, 0 points decrease in error
(Rewrite=> distribute-lft-neg-out_binary64 (neg.f64 (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 z x))): 0 points increase in error, 0 points decrease in error