Initial program 28.4
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\]
Simplified28.4
\[\leadsto \color{blue}{\left(\sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)} - b\right) \cdot \frac{0.5}{a}}
\]
Proof
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c (Rewrite<= metadata-eval (neg.f64 4))) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 c 4))) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (neg.f64 (Rewrite=> *-commutative_binary64 (*.f64 4 c))) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (Rewrite=> distribute-lft-neg-in_binary64 (*.f64 (neg.f64 4) c)) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 a (*.f64 (neg.f64 4) c)) (*.f64 b b)))) b) (/.f64 1/2 a)): 1 points increase in error, 1 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (+.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 a (neg.f64 4)) c)) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (+.f64 (*.f64 (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 a 4))) c) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 (Rewrite<= *-commutative_binary64 (*.f64 4 a))) c) (*.f64 b b))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 b b) (*.f64 (neg.f64 (*.f64 4 a)) c)))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (-.f64 (sqrt.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) b) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))) (neg.f64 b))) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))) (/.f64 1/2 a)): 0 points increase in error, 0 points decrease in error
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (/.f64 (Rewrite<= metadata-eval (/.f64 1 2)) a)): 0 points increase in error, 0 points decrease in error
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (/.f64 (/.f64 (Rewrite<= metadata-eval (neg.f64 -1)) 2) a)): 0 points increase in error, 0 points decrease in error
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (Rewrite<= associate-/r*_binary64 (/.f64 (neg.f64 -1) (*.f64 2 a)))): 0 points increase in error, 0 points decrease in error
(Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (neg.f64 -1)) (*.f64 2 a))): 22 points increase in error, 35 points decrease in error
(Rewrite=> associate-/l*_binary64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (/.f64 (*.f64 2 a) (neg.f64 -1)))): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (/.f64 (*.f64 2 a) (Rewrite=> metadata-eval 1))): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (Rewrite=> /-rgt-identity_binary64 (*.f64 2 a))): 0 points increase in error, 0 points decrease in error
Applied egg-rr30.0
\[\leadsto \left(\sqrt{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\mathsf{fma}\left(b, b, \left(a \cdot c\right) \cdot -4\right)\right)\right)}} - b\right) \cdot \frac{0.5}{a}
\]
Applied egg-rr28.5
\[\leadsto \left(\sqrt{\color{blue}{\frac{\left(b \cdot b\right) \cdot \left(b \cdot b\right) - 16 \cdot {\left(a \cdot c\right)}^{2}}{b \cdot b - a \cdot \left(c \cdot -4\right)}}} - b\right) \cdot \frac{0.5}{a}
\]
Applied egg-rr27.6
\[\leadsto \color{blue}{\left(\left(\mathsf{fma}\left(b, b, a \cdot \left(c \cdot -4\right)\right) - b \cdot b\right) \cdot \frac{1}{b + \sqrt{\mathsf{fma}\left(b, b, a \cdot \left(c \cdot -4\right)\right)}}\right)} \cdot \frac{0.5}{a}
\]
Simplified0.5
\[\leadsto \color{blue}{\frac{a \cdot \left(c \cdot -4\right) + 0}{b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}}} \cdot \frac{0.5}{a}
\]
Proof
(/.f64 (+.f64 (*.f64 a (*.f64 c -4)) 0) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 a (*.f64 c -4)) (Rewrite<= +-inverses_binary64 (-.f64 (*.f64 b b) (*.f64 b b)))) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (*.f64 a (*.f64 c -4)) (*.f64 b b)) (*.f64 b b))) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))): 148 points increase in error, 99 points decrease in error
(/.f64 (-.f64 (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 b b) (*.f64 a (*.f64 c -4)))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (Rewrite<= fma-udef_binary64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))): 21 points increase in error, 25 points decrease in error
(/.f64 (Rewrite<= *-rgt-identity_binary64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) 1)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) 1) (+.f64 b (sqrt.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 a (*.f64 c -4)) (*.f64 b b)))))): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) 1) (+.f64 b (sqrt.f64 (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 b b) (*.f64 a (*.f64 c -4))))))): 0 points increase in error, 0 points decrease in error
(/.f64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) 1) (+.f64 b (sqrt.f64 (Rewrite<= fma-udef_binary64 (fma.f64 b b (*.f64 a (*.f64 c -4))))))): 4 points increase in error, 4 points decrease in error
(Rewrite<= associate-*r/_binary64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) (/.f64 1 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))))))): 28 points increase in error, 29 points decrease in error
Applied egg-rr0.5
\[\leadsto \frac{a \cdot \left(c \cdot -4\right) + 0}{b + \sqrt{\color{blue}{\left(a \cdot c\right) \cdot -4 + b \cdot b}}} \cdot \frac{0.5}{a}
\]
Final simplification0.5
\[\leadsto \frac{a \cdot \left(c \cdot -4\right)}{b + \sqrt{-4 \cdot \left(a \cdot c\right) + b \cdot b}} \cdot \frac{0.5}{a}
\]