Initial program 62.0
\[\frac{x - lo}{hi - lo}
\]
Taylor expanded in lo around inf 64.0
\[\leadsto \color{blue}{\left(-1 \cdot \frac{x}{lo} + \left(\frac{hi \cdot \left(-1 \cdot x - -1 \cdot hi\right)}{{lo}^{2}} + 1\right)\right) - -1 \cdot \frac{hi}{lo}}
\]
Simplified52.3
\[\leadsto \color{blue}{1 + \left(\frac{hi - x}{lo} + \frac{hi - x}{\frac{lo}{\frac{hi}{lo}}}\right)}
\]
Proof
(+.f64 1 (+.f64 (/.f64 (-.f64 hi x) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 hi (neg.f64 x))) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (+.f64 hi (Rewrite<= mul-1-neg_binary64 (*.f64 -1 x))) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 x) hi)) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (+.f64 (*.f64 -1 x) (Rewrite<= *-lft-identity_binary64 (*.f64 1 hi))) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (+.f64 (*.f64 -1 x) (*.f64 (Rewrite<= metadata-eval (neg.f64 -1)) hi)) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (/.f64 (Rewrite=> distribute-lft-out--_binary64 (*.f64 -1 (-.f64 x hi))) lo) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 (-.f64 x hi) lo))) (/.f64 (-.f64 hi x) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 hi (neg.f64 x))) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (+.f64 hi (Rewrite<= mul-1-neg_binary64 (*.f64 -1 x))) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 x) hi)) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (+.f64 (*.f64 -1 x) (Rewrite<= *-lft-identity_binary64 (*.f64 1 hi))) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (+.f64 (*.f64 -1 x) (*.f64 (Rewrite<= metadata-eval (neg.f64 -1)) hi)) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (Rewrite=> distribute-lft-out--_binary64 (*.f64 -1 (-.f64 x hi))) (/.f64 lo (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (*.f64 -1 (-.f64 x hi)) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 lo lo) hi))))): 179 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (/.f64 (*.f64 -1 (-.f64 x hi)) (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 lo 2)) hi)))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 (-.f64 x hi) (/.f64 (pow.f64 lo 2) hi)))))): 0 points increase in error, 0 points decrease in error
(+.f64 1 (+.f64 (*.f64 -1 (/.f64 (-.f64 x hi) lo)) (*.f64 -1 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (-.f64 x hi) hi) (pow.f64 lo 2)))))): 256 points increase in error, 0 points decrease in error
(+.f64 1 (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 x hi) hi) (pow.f64 lo 2))) (*.f64 -1 (/.f64 (-.f64 x hi) lo))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 1 (*.f64 -1 (/.f64 (*.f64 (-.f64 x hi) hi) (pow.f64 lo 2)))) (*.f64 -1 (/.f64 (-.f64 x hi) lo)))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 1 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 -1 (*.f64 (-.f64 x hi) hi)) (pow.f64 lo 2)))) (*.f64 -1 (/.f64 (-.f64 x hi) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 1 (/.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 -1 (-.f64 x hi)) hi)) (pow.f64 lo 2))) (*.f64 -1 (/.f64 (-.f64 x hi) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 1 (/.f64 (*.f64 (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) hi) (pow.f64 lo 2))) (*.f64 -1 (/.f64 (-.f64 x hi) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 1 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi)))) (pow.f64 lo 2))) (*.f64 -1 (/.f64 (-.f64 x hi) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= +-commutative_binary64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1)) (*.f64 -1 (/.f64 (-.f64 x hi) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1) (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 -1 (-.f64 x hi)) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1) (/.f64 (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) lo)): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1) (Rewrite=> div-sub_binary64 (-.f64 (/.f64 (*.f64 -1 x) lo) (/.f64 (*.f64 -1 hi) lo)))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1) (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 x lo))) (/.f64 (*.f64 -1 hi) lo))): 0 points increase in error, 0 points decrease in error
(+.f64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1) (-.f64 (*.f64 -1 (/.f64 x lo)) (Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1) (*.f64 -1 (/.f64 x lo))) (*.f64 -1 (/.f64 hi lo)))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 (/.f64 x lo)) (+.f64 (/.f64 (*.f64 hi (-.f64 (*.f64 -1 x) (*.f64 -1 hi))) (pow.f64 lo 2)) 1))) (*.f64 -1 (/.f64 hi lo))): 0 points increase in error, 0 points decrease in error
Applied egg-rr55.0
\[\leadsto 1 + \left(\frac{hi - x}{lo} + \color{blue}{\frac{1}{lo} \cdot \frac{hi - x}{\frac{lo}{hi}}}\right)
\]
Applied egg-rr52.0
\[\leadsto 1 + \color{blue}{\frac{-\left({\left(\frac{hi - x}{lo}\right)}^{2} - {\left(\frac{hi - x}{lo} \cdot \frac{hi}{lo}\right)}^{2}\right)}{-\frac{\left(hi - x\right) - \frac{\left(hi - x\right) \cdot hi}{lo}}{lo}}}
\]
Simplified0.6
\[\leadsto 1 + \color{blue}{\frac{{\left(hi \cdot \frac{hi - x}{lo \cdot lo}\right)}^{2} - {\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi - x}{lo} \cdot \left(\frac{hi}{lo} + -1\right)}}
\]
Proof
(/.f64 (-.f64 (pow.f64 (*.f64 hi (/.f64 (-.f64 hi x) (*.f64 lo lo))) 2) (pow.f64 (/.f64 (-.f64 hi x) lo) 2)) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (pow.f64 (*.f64 hi (Rewrite<= associate-/l/_binary64 (/.f64 (/.f64 (-.f64 hi x) lo) lo))) 2) (pow.f64 (/.f64 (-.f64 hi x) lo) 2)) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 256 points decrease in error
(/.f64 (-.f64 (pow.f64 (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 (/.f64 (-.f64 hi x) lo) lo) hi)) 2) (pow.f64 (/.f64 (-.f64 hi x) lo) 2)) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (pow.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 (/.f64 (-.f64 hi x) lo) hi) lo)) 2) (pow.f64 (/.f64 (-.f64 hi x) lo) 2)) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 134 points increase in error, 75 points decrease in error
(/.f64 (-.f64 (pow.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo))) 2) (pow.f64 (/.f64 (-.f64 hi x) lo) 2)) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 43 points increase in error, 101 points decrease in error
(/.f64 (Rewrite=> sub-neg_binary64 (+.f64 (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2) (neg.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2)))) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite=> +-commutative_binary64 (+.f64 (neg.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2)) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (Rewrite=> neg-sub0_binary64 (-.f64 0 (pow.f64 (/.f64 (-.f64 hi x) lo) 2))) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2)) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= associate--r-_binary64 (-.f64 0 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2)))) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2)))) (*.f64 (/.f64 (-.f64 hi x) lo) (+.f64 (/.f64 hi lo) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 (/.f64 hi lo) (/.f64 (-.f64 hi x) lo)) (*.f64 -1 (/.f64 (-.f64 hi x) lo))))): 48 points increase in error, 41 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo))) (*.f64 -1 (/.f64 (-.f64 hi x) lo)))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (+.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) (Rewrite<= neg-mul-1_binary64 (neg.f64 (/.f64 (-.f64 hi x) lo))))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (Rewrite=> +-commutative_binary64 (+.f64 (neg.f64 (/.f64 (-.f64 hi x) lo)) (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo))))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (+.f64 (Rewrite=> neg-sub0_binary64 (-.f64 0 (/.f64 (-.f64 hi x) lo))) (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (Rewrite<= associate--r-_binary64 (-.f64 0 (-.f64 (/.f64 (-.f64 hi x) lo) (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)))))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (-.f64 0 (-.f64 (/.f64 (-.f64 hi x) lo) (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (/.f64 (-.f64 hi x) lo) hi) lo))))): 86 points increase in error, 12 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (-.f64 0 (-.f64 (/.f64 (-.f64 hi x) lo) (/.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 (-.f64 hi x) hi) lo)) lo)))): 57 points increase in error, 129 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (-.f64 0 (Rewrite<= div-sub_binary64 (/.f64 (-.f64 (-.f64 hi x) (/.f64 (*.f64 (-.f64 hi x) hi) lo)) lo)))): 0 points increase in error, 0 points decrease in error
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2) (pow.f64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 hi lo)) 2))) (Rewrite<= neg-sub0_binary64 (neg.f64 (/.f64 (-.f64 (-.f64 hi x) (/.f64 (*.f64 (-.f64 hi x) hi) lo)) lo)))): 0 points increase in error, 0 points decrease in error
Taylor expanded in lo around inf 64.0
\[\leadsto 1 + \frac{\color{blue}{-1 \cdot \frac{{\left(hi - x\right)}^{2}}{{lo}^{2}}}}{\frac{hi - x}{lo} \cdot \left(\frac{hi}{lo} + -1\right)}
\]
Simplified0.6
\[\leadsto 1 + \frac{\color{blue}{-{\left(\frac{hi - x}{lo}\right)}^{2}}}{\frac{hi - x}{lo} \cdot \left(\frac{hi}{lo} + -1\right)}
\]
Proof
(neg.f64 (pow.f64 (/.f64 (-.f64 hi x) lo) 2)): 0 points increase in error, 0 points decrease in error
(Rewrite=> neg-mul-1_binary64 (*.f64 -1 (pow.f64 (/.f64 (-.f64 hi x) lo) 2))): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (Rewrite=> unpow2_binary64 (*.f64 (/.f64 (-.f64 hi x) lo) (/.f64 (-.f64 hi x) lo)))): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (-.f64 hi x) (-.f64 hi x)) (*.f64 lo lo)))): 256 points increase in error, 0 points decrease in error
(*.f64 -1 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 (-.f64 hi x) 2)) (*.f64 lo lo))): 0 points increase in error, 0 points decrease in error
(*.f64 -1 (/.f64 (pow.f64 (-.f64 hi x) 2) (Rewrite<= unpow2_binary64 (pow.f64 lo 2)))): 0 points increase in error, 0 points decrease in error
Final simplification0.6
\[\leadsto 1 - \frac{{\left(\frac{hi - x}{lo}\right)}^{2}}{\frac{hi - x}{lo} \cdot \left(\frac{hi}{lo} + -1\right)}
\]