Initial program 59.8
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\]
Simplified52.8
\[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, n \cdot \frac{\ell \cdot \left(U* - U\right)}{Om}\right)\right)}}
\]
Proof
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 n U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 n) U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (Rewrite<= metadata-eval (neg.f64 2)) (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite=> sub-neg_binary64 (+.f64 U* (neg.f64 U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 U*))) (neg.f64 U))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 U*) U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 U (neg.f64 U*))))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 U U*)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 l Om) (neg.f64 (-.f64 U U*)))))))))): 0 points increase in error, 5 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 n (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 l (neg.f64 2)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 2) l)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 (/.f64 l Om) (*.f64 (neg.f64 2) l)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 l (*.f64 (neg.f64 2) l)) Om)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 14 points increase in error, 3 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (neg.f64 2) l) l)) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (neg.f64 2) (*.f64 l l))) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (neg.f64 2) (/.f64 (*.f64 l l) Om))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (*.f64 (/.f64 l Om) (-.f64 U U*))) n)))))): 8 points increase in error, 1 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (/.f64 l Om)) (-.f64 U U*))) n))))): 3 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)) n))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= *-commutative_binary64 (*.f64 n (*.f64 (pow.f64 (/.f64 l Om) 2) (-.f64 U U*)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))))): 1 points increase in error, 2 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (-.f64 (Rewrite<= sub-neg_binary64 (-.f64 t (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))): 0 points increase in error, 0 points decrease in error
Taylor expanded in l around inf 60.9
\[\leadsto \sqrt{\color{blue}{2 \cdot \left(n \cdot \left({\ell}^{2} \cdot \left(U \cdot \left(\frac{n \cdot \left(U* - U\right)}{{Om}^{2}} - 2 \cdot \frac{1}{Om}\right)\right)\right)\right)}}
\]
Simplified49.4
\[\leadsto \sqrt{\color{blue}{n \cdot \left(\left(\mathsf{fma}\left(\frac{n}{Om}, \frac{U* - U}{Om}, \frac{-2}{Om}\right) \cdot \left(\ell \cdot \left(\ell \cdot U\right)\right)\right) \cdot 2\right)}}
\]
Proof
(*.f64 n (*.f64 (*.f64 (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (/.f64 -2 Om)) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (/.f64 (Rewrite<= metadata-eval (neg.f64 2)) Om)) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (Rewrite<= distribute-neg-frac_binary64 (neg.f64 (/.f64 2 Om)))) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (neg.f64 (/.f64 (Rewrite<= metadata-eval (*.f64 2 1)) Om))) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (neg.f64 (Rewrite<= associate-*r/_binary64 (*.f64 2 (/.f64 1 Om))))) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om)) (*.f64 2 (/.f64 1 Om)))) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (-.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 n (-.f64 U* U)) (*.f64 Om Om))) (*.f64 2 (/.f64 1 Om))) (*.f64 l (*.f64 l U))) 2)): 26 points increase in error, 8 points decrease in error
(*.f64 n (*.f64 (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (Rewrite<= unpow2_binary64 (pow.f64 Om 2))) (*.f64 2 (/.f64 1 Om))) (*.f64 l (*.f64 l U))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 l l) U))) 2)): 18 points increase in error, 12 points decrease in error
(*.f64 n (*.f64 (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 l 2)) U)) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (pow.f64 l 2) U) (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))))) 2)): 0 points increase in error, 0 points decrease in error
(*.f64 n (*.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (pow.f64 l 2) (*.f64 U (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om)))))) 2)): 13 points increase in error, 17 points decrease in error
(Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (*.f64 (pow.f64 l 2) (*.f64 U (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om)))))) 2)): 0 points increase in error, 2 points decrease in error
(Rewrite<= *-commutative_binary64 (*.f64 2 (*.f64 n (*.f64 (pow.f64 l 2) (*.f64 U (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om)))))))): 0 points increase in error, 0 points decrease in error
Taylor expanded in l around -inf 34.2
\[\leadsto \color{blue}{-1 \cdot \left(\left(\sqrt{2} \cdot \ell\right) \cdot \sqrt{n \cdot \left(\left(\frac{n \cdot \left(U* - U\right)}{{Om}^{2}} - 2 \cdot \frac{1}{Om}\right) \cdot U\right)}\right)}
\]
Simplified29.8
\[\leadsto \color{blue}{\sqrt{2} \cdot \left(\sqrt{n \cdot \left(U \cdot \mathsf{fma}\left(\frac{n}{Om}, \frac{U* - U}{Om}, \frac{-2}{Om}\right)\right)} \cdot \left(-\ell\right)\right)}
\]
Proof
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (/.f64 -2 Om))))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (/.f64 (Rewrite<= metadata-eval (neg.f64 2)) Om))))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (Rewrite<= distribute-neg-frac_binary64 (neg.f64 (/.f64 2 Om))))))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (neg.f64 (/.f64 (Rewrite<= metadata-eval (*.f64 2 1)) Om)))))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (fma.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om) (neg.f64 (Rewrite<= associate-*r/_binary64 (*.f64 2 (/.f64 1 Om)))))))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 n Om) (/.f64 (-.f64 U* U) Om)) (*.f64 2 (/.f64 1 Om))))))) (neg.f64 l))): 0 points increase in error, 1 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (-.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 n (-.f64 U* U)) (*.f64 Om Om))) (*.f64 2 (/.f64 1 Om)))))) (neg.f64 l))): 23 points increase in error, 7 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (*.f64 U (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (Rewrite<= unpow2_binary64 (pow.f64 Om 2))) (*.f64 2 (/.f64 1 Om)))))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 (*.f64 n (Rewrite=> *-commutative_binary64 (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) U)))) (neg.f64 l))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) U))) l)))): 0 points increase in error, 0 points decrease in error
(*.f64 (sqrt.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 l (sqrt.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) U))))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 (sqrt.f64 2) (*.f64 l (sqrt.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) U))))))): 0 points increase in error, 0 points decrease in error
(neg.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (sqrt.f64 2) l) (sqrt.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) U)))))): 10 points increase in error, 15 points decrease in error
(Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 (*.f64 (sqrt.f64 2) l) (sqrt.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) (pow.f64 Om 2)) (*.f64 2 (/.f64 1 Om))) U)))))): 0 points increase in error, 0 points decrease in error
Initial program 29.1
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\]
Simplified29.3
\[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, n \cdot \frac{\ell \cdot \left(U* - U\right)}{Om}\right)\right)}}
\]
Proof
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 n U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 n) U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (Rewrite<= metadata-eval (neg.f64 2)) (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite=> sub-neg_binary64 (+.f64 U* (neg.f64 U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 U*))) (neg.f64 U))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 U*) U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 U (neg.f64 U*))))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 U U*)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 l Om) (neg.f64 (-.f64 U U*)))))))))): 0 points increase in error, 5 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 n (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 l (neg.f64 2)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 2) l)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 (/.f64 l Om) (*.f64 (neg.f64 2) l)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 l (*.f64 (neg.f64 2) l)) Om)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 14 points increase in error, 3 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (neg.f64 2) l) l)) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (neg.f64 2) (*.f64 l l))) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (neg.f64 2) (/.f64 (*.f64 l l) Om))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (*.f64 (/.f64 l Om) (-.f64 U U*))) n)))))): 8 points increase in error, 1 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (/.f64 l Om)) (-.f64 U U*))) n))))): 3 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)) n))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= *-commutative_binary64 (*.f64 n (*.f64 (pow.f64 (/.f64 l Om) 2) (-.f64 U U*)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))))): 1 points increase in error, 2 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (-.f64 (Rewrite<= sub-neg_binary64 (-.f64 t (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))): 0 points increase in error, 0 points decrease in error
Applied egg-rr26.8
\[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot \left(U \cdot 2\right)\right)\right) + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}}
\]
Applied egg-rr26.8
\[\leadsto \sqrt{\mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right) \cdot \color{blue}{\frac{U \cdot \left(n \cdot 2\right)}{\frac{Om}{\ell}}} + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}
\]
Initial program 26.5
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\]
Simplified26.2
\[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, n \cdot \frac{\ell \cdot \left(U* - U\right)}{Om}\right)\right)}}
\]
Proof
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 n U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 n) U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (Rewrite<= metadata-eval (neg.f64 2)) (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite=> sub-neg_binary64 (+.f64 U* (neg.f64 U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 U*))) (neg.f64 U))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 U*) U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 U (neg.f64 U*))))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 U U*)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 l Om) (neg.f64 (-.f64 U U*)))))))))): 0 points increase in error, 5 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 n (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 l (neg.f64 2)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 2) l)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 (/.f64 l Om) (*.f64 (neg.f64 2) l)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 l (*.f64 (neg.f64 2) l)) Om)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 14 points increase in error, 3 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (neg.f64 2) l) l)) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (neg.f64 2) (*.f64 l l))) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (neg.f64 2) (/.f64 (*.f64 l l) Om))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (*.f64 (/.f64 l Om) (-.f64 U U*))) n)))))): 8 points increase in error, 1 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (/.f64 l Om)) (-.f64 U U*))) n))))): 3 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)) n))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= *-commutative_binary64 (*.f64 n (*.f64 (pow.f64 (/.f64 l Om) 2) (-.f64 U U*)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))))): 1 points increase in error, 2 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (-.f64 (Rewrite<= sub-neg_binary64 (-.f64 t (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))): 0 points increase in error, 0 points decrease in error
Applied egg-rr41.9
\[\leadsto \color{blue}{\sqrt{\mathsf{fma}\left(\frac{\ell}{Om}, \mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), t\right)} \cdot \sqrt{n \cdot \left(U \cdot 2\right)}}
\]
Initial program 26.0
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\]
Simplified25.2
\[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, n \cdot \frac{\ell \cdot \left(U* - U\right)}{Om}\right)\right)}}
\]
Proof
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 n U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 n) U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (Rewrite<= metadata-eval (neg.f64 2)) (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite=> sub-neg_binary64 (+.f64 U* (neg.f64 U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 U*))) (neg.f64 U))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 U*) U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 U (neg.f64 U*))))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 U U*)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 l Om) (neg.f64 (-.f64 U U*)))))))))): 0 points increase in error, 5 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 n (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 l (neg.f64 2)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 2) l)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 (/.f64 l Om) (*.f64 (neg.f64 2) l)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 l (*.f64 (neg.f64 2) l)) Om)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 14 points increase in error, 3 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (neg.f64 2) l) l)) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (neg.f64 2) (*.f64 l l))) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (neg.f64 2) (/.f64 (*.f64 l l) Om))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (*.f64 (/.f64 l Om) (-.f64 U U*))) n)))))): 8 points increase in error, 1 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (/.f64 l Om)) (-.f64 U U*))) n))))): 3 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)) n))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= *-commutative_binary64 (*.f64 n (*.f64 (pow.f64 (/.f64 l Om) 2) (-.f64 U U*)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))))): 1 points increase in error, 2 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (-.f64 (Rewrite<= sub-neg_binary64 (-.f64 t (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))): 0 points increase in error, 0 points decrease in error
Applied egg-rr25.0
\[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot \left(U \cdot 2\right)\right)\right) + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}}
\]
Applied egg-rr25.0
\[\leadsto \sqrt{\mathsf{fma}\left(\ell, -2, n \cdot \color{blue}{\frac{U* - U}{\frac{Om}{\ell}}}\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot \left(U \cdot 2\right)\right)\right) + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}
\]
Initial program 31.6
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\]
Simplified32.6
\[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, n \cdot \frac{\ell \cdot \left(U* - U\right)}{Om}\right)\right)}}
\]
Proof
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 n U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 n) U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (Rewrite<= metadata-eval (neg.f64 2)) (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite=> sub-neg_binary64 (+.f64 U* (neg.f64 U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 U*))) (neg.f64 U))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 U*) U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 U (neg.f64 U*))))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 U U*)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 l Om) (neg.f64 (-.f64 U U*)))))))))): 0 points increase in error, 5 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 n (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 l (neg.f64 2)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 2) l)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 (/.f64 l Om) (*.f64 (neg.f64 2) l)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 l (*.f64 (neg.f64 2) l)) Om)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 14 points increase in error, 3 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (neg.f64 2) l) l)) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (neg.f64 2) (*.f64 l l))) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (neg.f64 2) (/.f64 (*.f64 l l) Om))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (*.f64 (/.f64 l Om) (-.f64 U U*))) n)))))): 8 points increase in error, 1 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (/.f64 l Om)) (-.f64 U U*))) n))))): 3 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)) n))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= *-commutative_binary64 (*.f64 n (*.f64 (pow.f64 (/.f64 l Om) 2) (-.f64 U U*)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))))): 1 points increase in error, 2 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (-.f64 (Rewrite<= sub-neg_binary64 (-.f64 t (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))): 0 points increase in error, 0 points decrease in error
Taylor expanded in t around 0 32.2
\[\leadsto \sqrt{\color{blue}{2 \cdot \left(n \cdot \left(t \cdot U\right)\right) + 2 \cdot \frac{n \cdot \left(\left(\frac{n \cdot \left(\ell \cdot \left(U* - U\right)\right)}{Om} + -2 \cdot \ell\right) \cdot \left(\ell \cdot U\right)\right)}{Om}}}
\]
Simplified29.8
\[\leadsto \sqrt{\color{blue}{2 \cdot \mathsf{fma}\left(n, U \cdot t, \frac{n}{\frac{\frac{Om}{\ell \cdot U}}{\mathsf{fma}\left(\ell, -2, \frac{n}{Om} \cdot \left(\ell \cdot \left(U* - U\right)\right)\right)}}\right)}}
\]
Proof
(*.f64 2 (fma.f64 n (*.f64 U t) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (fma.f64 l -2 (*.f64 (/.f64 n Om) (*.f64 l (-.f64 U* U)))))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (fma.f64 n (Rewrite<= *-commutative_binary64 (*.f64 t U)) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (fma.f64 l -2 (*.f64 (/.f64 n Om) (*.f64 l (-.f64 U* U)))))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (fma.f64 l -2 (Rewrite<= associate-/r/_binary64 (/.f64 n (/.f64 Om (*.f64 l (-.f64 U* U)))))))))): 5 points increase in error, 2 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (fma.f64 l -2 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om))))))): 3 points increase in error, 2 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 l -2) (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om))))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 -2 l)) (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om)))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (/.f64 (/.f64 Om (*.f64 l U)) (Rewrite<= +-commutative_binary64 (+.f64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om) (*.f64 -2 l))))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (Rewrite<= associate-/r*_binary64 (/.f64 Om (*.f64 (*.f64 l U) (+.f64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om) (*.f64 -2 l)))))))): 15 points increase in error, 1 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (/.f64 n (/.f64 Om (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om) (*.f64 -2 l)) (*.f64 l U))))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (fma.f64 n (*.f64 t U) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 n (*.f64 (+.f64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om) (*.f64 -2 l)) (*.f64 l U))) Om)))): 7 points increase in error, 14 points decrease in error
(*.f64 2 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 n (*.f64 t U)) (/.f64 (*.f64 n (*.f64 (+.f64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om) (*.f64 -2 l)) (*.f64 l U))) Om)))): 0 points increase in error, 2 points decrease in error
(Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 2 (*.f64 n (*.f64 t U))) (*.f64 2 (/.f64 (*.f64 n (*.f64 (+.f64 (/.f64 (*.f64 n (*.f64 l (-.f64 U* U))) Om) (*.f64 -2 l)) (*.f64 l U))) Om)))): 0 points increase in error, 0 points decrease in error
Initial program 64.0
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\]
Simplified57.3
\[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, n \cdot \frac{\ell \cdot \left(U* - U\right)}{Om}\right)\right)}}
\]
Proof
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 n U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 n) U)) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l -2 (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (Rewrite<= metadata-eval (neg.f64 2)) (*.f64 n (/.f64 (*.f64 l (-.f64 U* U)) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite=> sub-neg_binary64 (+.f64 U* (neg.f64 U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (+.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 U*))) (neg.f64 U))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (Rewrite<= distribute-neg-in_binary64 (neg.f64 (+.f64 (neg.f64 U*) U)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 U (neg.f64 U*))))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (/.f64 (*.f64 l (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 U U*)))) Om))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 l Om) (neg.f64 (-.f64 U U*)))))))))): 0 points increase in error, 5 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (*.f64 n (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 n (*.f64 (/.f64 l Om) (-.f64 U U*)))))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (fma.f64 l (neg.f64 2) (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 l (neg.f64 2)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (*.f64 (/.f64 l Om) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (neg.f64 2) l)) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 (/.f64 l Om) (*.f64 (neg.f64 2) l)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 l (*.f64 (neg.f64 2) l)) Om)) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 14 points increase in error, 3 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (neg.f64 2) l) l)) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (/.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (neg.f64 2) (*.f64 l l))) Om) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (neg.f64 2) (/.f64 (*.f64 l l) Om))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (/.f64 l Om) (*.f64 (*.f64 (/.f64 l Om) (-.f64 U U*)) n)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (*.f64 (/.f64 l Om) (-.f64 U U*))) n)))))): 8 points increase in error, 1 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 l Om) (/.f64 l Om)) (-.f64 U U*))) n))))): 3 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)) n))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= *-commutative_binary64 (*.f64 n (*.f64 (pow.f64 (/.f64 l Om) 2) (-.f64 U U*)))))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (+.f64 t (-.f64 (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))))): 1 points increase in error, 2 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (neg.f64 (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*)))))): 0 points increase in error, 0 points decrease in error
(sqrt.f64 (*.f64 (*.f64 (*.f64 2 n) U) (-.f64 (Rewrite<= sub-neg_binary64 (-.f64 t (*.f64 2 (/.f64 (*.f64 l l) Om)))) (*.f64 (*.f64 n (pow.f64 (/.f64 l Om) 2)) (-.f64 U U*))))): 0 points increase in error, 0 points decrease in error
Applied egg-rr43.4
\[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot \left(U \cdot 2\right)\right)\right) + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}}
\]
Applied egg-rr43.4
\[\leadsto \sqrt{\mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right) \cdot \color{blue}{\frac{U \cdot \left(n \cdot 2\right)}{\frac{Om}{\ell}}} + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}
\]
Applied egg-rr43.4
\[\leadsto \sqrt{\mathsf{fma}\left(\ell, -2, n \cdot \color{blue}{\frac{U* - U}{\frac{Om}{\ell}}}\right) \cdot \frac{U \cdot \left(n \cdot 2\right)}{\frac{Om}{\ell}} + 2 \cdot \left(\left(n \cdot U\right) \cdot t\right)}
\]
Taylor expanded in l around inf 27.6
\[\leadsto \color{blue}{\left(\sqrt{2} \cdot \ell\right) \cdot \sqrt{\frac{n \cdot \left(\left(\frac{n \cdot \left(U* - U\right)}{Om} - 2\right) \cdot U\right)}{Om}}}
\]
Simplified27.0
\[\leadsto \color{blue}{\ell \cdot \left(\sqrt{2} \cdot \sqrt{\frac{n}{Om} \cdot \left(U \cdot \mathsf{fma}\left(\frac{n}{Om}, U* - U, -2\right)\right)}\right)}
\]
Proof
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (/.f64 n Om) (*.f64 U (fma.f64 (/.f64 n Om) (-.f64 U* U) -2)))))): 0 points increase in error, 0 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (/.f64 n Om) (*.f64 U (fma.f64 (/.f64 n Om) (-.f64 U* U) (Rewrite<= metadata-eval (neg.f64 2)))))))): 0 points increase in error, 0 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (/.f64 n Om) (*.f64 U (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 n Om) (-.f64 U* U)) 2))))))): 0 points increase in error, 1 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (/.f64 n Om) (*.f64 U (-.f64 (Rewrite<= associate-/r/_binary64 (/.f64 n (/.f64 Om (-.f64 U* U)))) 2)))))): 10 points increase in error, 6 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (/.f64 n Om) (*.f64 U (-.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 n (-.f64 U* U)) Om)) 2)))))): 8 points increase in error, 8 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (*.f64 (/.f64 n Om) (Rewrite<= *-commutative_binary64 (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) Om) 2) U)))))): 0 points increase in error, 0 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (Rewrite<= associate-/r/_binary64 (/.f64 n (/.f64 Om (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) Om) 2) U))))))): 25 points increase in error, 19 points decrease in error
(*.f64 l (*.f64 (sqrt.f64 2) (sqrt.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) Om) 2) U)) Om))))): 17 points increase in error, 14 points decrease in error
(Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 l (sqrt.f64 2)) (sqrt.f64 (/.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) Om) 2) U)) Om)))): 14 points increase in error, 11 points decrease in error
(*.f64 (Rewrite<= *-commutative_binary64 (*.f64 (sqrt.f64 2) l)) (sqrt.f64 (/.f64 (*.f64 n (*.f64 (-.f64 (/.f64 (*.f64 n (-.f64 U* U)) Om) 2) U)) Om))): 0 points increase in error, 0 points decrease in error