Initial program 62.0
\[\frac{x - lo}{hi - lo}
\]
Taylor expanded in hi around inf 64.0
\[\leadsto \color{blue}{\left(\frac{x}{hi} + \frac{lo \cdot \left(x - lo\right)}{{hi}^{2}}\right) - \frac{lo}{hi}}
\]
Simplified57.9
\[\leadsto \color{blue}{\frac{x - lo}{hi} \cdot \frac{lo}{hi} + \frac{x - lo}{hi}}
\]
Proof
(+.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) (/.f64 (-.f64 x lo) hi)): 0 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (-.f64 x lo) lo) (*.f64 hi hi))) (/.f64 (-.f64 x lo) hi)): 255 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 lo (-.f64 x lo))) (*.f64 hi hi)) (/.f64 (-.f64 x lo) hi)): 0 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (*.f64 lo (-.f64 x lo)) (Rewrite<= unpow2_binary64 (pow.f64 hi 2))) (/.f64 (-.f64 x lo) hi)): 0 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (*.f64 lo (-.f64 x lo)) (pow.f64 hi 2)) (Rewrite=> div-sub_binary64 (-.f64 (/.f64 x hi) (/.f64 lo hi)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (/.f64 (*.f64 lo (-.f64 x lo)) (pow.f64 hi 2)) (/.f64 x hi)) (/.f64 lo hi))): 0 points increase in error, 0 points decrease in error
(-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (/.f64 x hi) (/.f64 (*.f64 lo (-.f64 x lo)) (pow.f64 hi 2)))) (/.f64 lo hi)): 0 points increase in error, 0 points decrease in error
Applied egg-rr57.9
\[\leadsto \color{blue}{\frac{{\left(\frac{x - lo}{hi} \cdot \frac{lo}{hi}\right)}^{2}}{\frac{x - lo}{hi} \cdot \left(\frac{lo}{hi} - 1\right)} - \frac{{\left(\frac{x - lo}{hi}\right)}^{2}}{\frac{x - lo}{hi} \cdot \left(\frac{lo}{hi} - 1\right)}}
\]
Simplified0.4
\[\leadsto \color{blue}{\frac{\frac{{\left(lo \cdot \frac{x - lo}{hi \cdot hi}\right)}^{2}}{\frac{x - lo}{hi}} - \frac{x - lo}{hi}}{-1 + \frac{lo}{hi}}}
\]
Proof
(/.f64 (-.f64 (/.f64 (pow.f64 (*.f64 lo (/.f64 (-.f64 x lo) (*.f64 hi hi))) 2) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 x lo) hi)) (+.f64 -1 (/.f64 lo hi))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (Rewrite=> *-commutative_binary64 (*.f64 (/.f64 (-.f64 x lo) (*.f64 hi hi)) lo)) 2) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 x lo) hi)) (+.f64 -1 (/.f64 lo hi))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 (-.f64 x lo) lo) (*.f64 hi hi))) 2) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 x lo) hi)) (+.f64 -1 (/.f64 lo hi))): 255 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (Rewrite=> times-frac_binary64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi))) 2) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 x lo) hi)) (+.f64 -1 (/.f64 lo hi))): 0 points increase in error, 255 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (/.f64 (-.f64 x lo) hi)) (Rewrite<= /-rgt-identity_binary64 (/.f64 (/.f64 (-.f64 x lo) hi) 1))) (+.f64 -1 (/.f64 lo hi))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (/.f64 (-.f64 x lo) hi)) (/.f64 (/.f64 (-.f64 x lo) hi) (Rewrite<= *-inverses_binary64 (/.f64 (/.f64 (-.f64 x lo) hi) (/.f64 (-.f64 x lo) hi))))) (+.f64 -1 (/.f64 lo hi))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (/.f64 (-.f64 x lo) hi)) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 x lo) hi)))) (+.f64 -1 (/.f64 lo hi))): 4 points increase in error, 9 points decrease in error
(/.f64 (-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (/.f64 (-.f64 x lo) hi)) (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 (-.f64 x lo) hi) 2)) (/.f64 (-.f64 x lo) hi))) (+.f64 -1 (/.f64 lo hi))): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= div-sub_binary64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (pow.f64 (/.f64 (-.f64 x lo) hi) 2)) (/.f64 (-.f64 x lo) hi))) (+.f64 -1 (/.f64 lo hi))): 102 points increase in error, 82 points decrease in error
(/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (pow.f64 (/.f64 (-.f64 x lo) hi) 2)) (/.f64 (-.f64 x lo) hi)) (Rewrite<= +-commutative_binary64 (+.f64 (/.f64 lo hi) -1))): 0 points increase in error, 0 points decrease in error
(/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (pow.f64 (/.f64 (-.f64 x lo) hi) 2)) (/.f64 (-.f64 x lo) hi)) (+.f64 (/.f64 lo hi) (Rewrite<= metadata-eval (neg.f64 1)))): 0 points increase in error, 0 points decrease in error
(/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (pow.f64 (/.f64 (-.f64 x lo) hi) 2)) (/.f64 (-.f64 x lo) hi)) (Rewrite<= sub-neg_binary64 (-.f64 (/.f64 lo hi) 1))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-/r*_binary64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (pow.f64 (/.f64 (-.f64 x lo) hi) 2)) (*.f64 (/.f64 (-.f64 x lo) hi) (-.f64 (/.f64 lo hi) 1)))): 44 points increase in error, 55 points decrease in error
(Rewrite=> div-sub_binary64 (-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x lo) hi) (/.f64 lo hi)) 2) (*.f64 (/.f64 (-.f64 x lo) hi) (-.f64 (/.f64 lo hi) 1))) (/.f64 (pow.f64 (/.f64 (-.f64 x lo) hi) 2) (*.f64 (/.f64 (-.f64 x lo) hi) (-.f64 (/.f64 lo hi) 1))))): 85 points increase in error, 94 points decrease in error
Taylor expanded in lo around 0 0.3
\[\leadsto \frac{\color{blue}{\frac{lo}{hi} + -1 \cdot \frac{x}{hi}}}{-1 + \frac{lo}{hi}}
\]
Simplified0.3
\[\leadsto \frac{\color{blue}{\frac{lo}{hi} + \left(-\frac{x}{hi}\right)}}{-1 + \frac{lo}{hi}}
\]
Proof
(+.f64 (/.f64 lo hi) (neg.f64 (/.f64 x hi))): 0 points increase in error, 0 points decrease in error
(+.f64 (/.f64 lo hi) (Rewrite=> neg-mul-1_binary64 (*.f64 -1 (/.f64 x hi)))): 0 points increase in error, 0 points decrease in error
Applied egg-rr0.3
\[\leadsto \frac{\color{blue}{\frac{lo}{hi} - \frac{x}{hi}}}{-1 + \frac{lo}{hi}}
\]
Final simplification0.3
\[\leadsto \frac{\frac{lo}{hi} - \frac{x}{hi}}{\frac{lo}{hi} + -1}
\]