Initial program 54.1
\[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\]
Simplified53.3
\[\leadsto \color{blue}{\mathsf{fma}\left(y - x, \frac{z - t}{a - t}, x\right)}
\]
Proof
(fma.f64 (-.f64 y x) (/.f64 (-.f64 z t) (-.f64 a t)) x): 0 points increase in error, 0 points decrease in error
(Rewrite<= fma-def_binary64 (+.f64 (*.f64 (-.f64 y x) (/.f64 (-.f64 z t) (-.f64 a t))) x)): 5 points increase in error, 0 points decrease in error
(+.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) x): 87 points increase in error, 13 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t)))): 0 points increase in error, 0 points decrease in error
Taylor expanded in t around inf 6.5
\[\leadsto \color{blue}{\frac{\left(y - x\right) \cdot \left(-1 \cdot z - -1 \cdot a\right)}{t} + y}
\]
Simplified6.3
\[\leadsto \color{blue}{y + \frac{a - z}{t} \cdot \left(y - x\right)}
\]
Proof
(+.f64 y (*.f64 (/.f64 (-.f64 a z) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (*.f64 (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 a (neg.f64 z))) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (*.f64 (/.f64 (+.f64 a (Rewrite<= mul-1-neg_binary64 (*.f64 -1 z))) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (*.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 z) a)) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (*.f64 (/.f64 (+.f64 (*.f64 -1 z) (Rewrite<= *-lft-identity_binary64 (*.f64 1 a))) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (*.f64 (/.f64 (+.f64 (*.f64 -1 z) (*.f64 (Rewrite<= metadata-eval (neg.f64 -1)) a)) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (*.f64 (/.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (*.f64 -1 z) (*.f64 -1 a))) t) (-.f64 y x))): 0 points increase in error, 0 points decrease in error
(+.f64 y (Rewrite<= associate-/r/_binary64 (/.f64 (-.f64 (*.f64 -1 z) (*.f64 -1 a)) (/.f64 t (-.f64 y x))))): 19 points increase in error, 22 points decrease in error
(+.f64 y (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (-.f64 (*.f64 -1 z) (*.f64 -1 a)) (-.f64 y x)) t))): 48 points increase in error, 23 points decrease in error
(+.f64 y (/.f64 (Rewrite=> *-commutative_binary64 (*.f64 (-.f64 y x) (-.f64 (*.f64 -1 z) (*.f64 -1 a)))) t)): 0 points increase in error, 0 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 (/.f64 (*.f64 (-.f64 y x) (-.f64 (*.f64 -1 z) (*.f64 -1 a))) t) y)): 0 points increase in error, 0 points decrease in error
Taylor expanded in y around 0 6.6
\[\leadsto y + \color{blue}{-1 \cdot \frac{x \cdot \left(a - z\right)}{t}}
\]
Simplified6.5
\[\leadsto y + \color{blue}{x \cdot \frac{z - a}{t}}
\]
Proof
(*.f64 x (/.f64 (-.f64 z a) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (/.f64 (Rewrite=> sub-neg_binary64 (+.f64 z (neg.f64 a))) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (/.f64 (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 z))) (neg.f64 a)) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (/.f64 (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 z) a))) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (/.f64 (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 a (neg.f64 z)))) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (/.f64 (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 a z))) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (/.f64 (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (-.f64 a z))) t)): 0 points increase in error, 0 points decrease in error
(*.f64 x (Rewrite=> associate-/l*_binary64 (/.f64 -1 (/.f64 t (-.f64 a z))))): 21 points increase in error, 13 points decrease in error
(Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 x -1) (/.f64 t (-.f64 a z)))): 18 points increase in error, 19 points decrease in error
(/.f64 (Rewrite=> *-commutative_binary64 (*.f64 -1 x)) (/.f64 t (-.f64 a z))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 x (/.f64 t (-.f64 a z))))): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 x (-.f64 a z)) t))): 43 points increase in error, 45 points decrease in error