Initial program 35.8
\[\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}
\]
Simplified35.8
\[\leadsto \color{blue}{\sqrt[3]{\frac{0.5}{a} \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)} + \sqrt[3]{\left(g + \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{-0.5}{a}}}
\]
Proof
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 (Rewrite<= metadata-eval (/.f64 1 2)) a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 1 (*.f64 2 a))) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))): 0 points increase in error, 14 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) (neg.f64 g))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))): 0 points increase in error, 14 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 -1/2 a)))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 (Rewrite<= metadata-eval (*.f64 1/2 -1)) a)))): 14 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (/.f64 (*.f64 (Rewrite<= metadata-eval (/.f64 1 2)) -1) a)))): 14 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 (/.f64 1 2) a) -1))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))) (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 1 (*.f64 2 a))) -1)))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 (/.f64 1 (*.f64 2 a)) -1) (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (/.f64 1 (*.f64 2 a)) (*.f64 -1 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (Rewrite<= neg-mul-1_binary64 (neg.f64 (+.f64 g (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (Rewrite<= distribute-neg-out_binary64 (+.f64 (neg.f64 g) (neg.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))))))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (+.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))) (cbrt.f64 (*.f64 (/.f64 1 (*.f64 2 a)) (Rewrite<= sub-neg_binary64 (-.f64 (neg.f64 g) (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h)))))))): 0 points increase in error, 0 points decrease in error
Taylor expanded in h around 0 55.8
\[\leadsto \sqrt[3]{\frac{0.5}{a} \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)} + \color{blue}{{\left(\frac{1 \cdot g}{a}\right)}^{0.3333333333333333} \cdot \left(\sqrt[3]{-0.5} \cdot \sqrt[3]{2}\right)}
\]
Simplified47.3
\[\leadsto \sqrt[3]{\frac{0.5}{a} \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)} + \color{blue}{\sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \sqrt[3]{\frac{g}{a}}\right)}
\]
Proof
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 g a))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 (Rewrite<= *-lft-identity_binary64 (*.f64 1 g)) a))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (Rewrite<= unpow1/3_binary64 (pow.f64 (/.f64 (*.f64 1 g) a) 1/3))))): 0 points increase in error, 5 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (cbrt.f64 -1/2) (cbrt.f64 2)) (pow.f64 (/.f64 (*.f64 1 g) a) 1/3)))): 3 points increase in error, 2 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 (/.f64 (*.f64 1 g) a) 1/3) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 2))))): 2 points increase in error, 0 points decrease in error
Taylor expanded in g around inf 19.9
\[\leadsto \sqrt[3]{\frac{0.5}{a} \cdot \left(\color{blue}{\left(-0.5 \cdot \frac{{h}^{2}}{g} + g\right)} - g\right)} + \sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \sqrt[3]{\frac{g}{a}}\right)
\]
Simplified17.7
\[\leadsto \sqrt[3]{\frac{0.5}{a} \cdot \left(\color{blue}{\mathsf{fma}\left(-0.5, \frac{h}{\frac{g}{h}}, g\right)} - g\right)} + \sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \sqrt[3]{\frac{g}{a}}\right)
\]
Proof
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 g a))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (cbrt.f64 (/.f64 (Rewrite<= *-lft-identity_binary64 (*.f64 1 g)) a))))): 0 points increase in error, 0 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (Rewrite<= unpow1/3_binary64 (pow.f64 (/.f64 (*.f64 1 g) a) 1/3))))): 0 points increase in error, 5 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (cbrt.f64 -1/2) (cbrt.f64 2)) (pow.f64 (/.f64 (*.f64 1 g) a) 1/3)))): 3 points increase in error, 2 points decrease in error
(+.f64 (cbrt.f64 (*.f64 (/.f64 1/2 a) (-.f64 (sqrt.f64 (-.f64 (*.f64 g g) (*.f64 h h))) g))) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 (/.f64 (*.f64 1 g) a) 1/3) (*.f64 (cbrt.f64 -1/2) (cbrt.f64 2))))): 2 points increase in error, 0 points decrease in error
Applied egg-rr2.9
\[\leadsto \sqrt[3]{\frac{0.5}{a} \cdot \left(\mathsf{fma}\left(-0.5, \frac{h}{\frac{g}{h}}, g\right) - g\right)} + \sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \color{blue}{\left(\sqrt[3]{g} \cdot \sqrt[3]{\frac{1}{a}}\right)}\right)
\]
Applied egg-rr2.8
\[\leadsto \color{blue}{\frac{\sqrt[3]{\left(\mathsf{fma}\left(-0.5, h \cdot \frac{h}{g}, g\right) - g\right) \cdot 0.5}}{\sqrt[3]{a}}} + \sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \left(\sqrt[3]{g} \cdot \sqrt[3]{\frac{1}{a}}\right)\right)
\]
Simplified1.8
\[\leadsto \color{blue}{\frac{\sqrt[3]{\left(-0.5 \cdot \left(h \cdot \frac{h}{g}\right)\right) \cdot 0.5}}{\sqrt[3]{a}}} + \sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \left(\sqrt[3]{g} \cdot \sqrt[3]{\frac{1}{a}}\right)\right)
\]
Proof
(+.f64 (/.f64 (cbrt.f64 (*.f64 (*.f64 -1/2 (*.f64 h (/.f64 h g))) 1/2)) (cbrt.f64 a)) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (*.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 1 a)))))): 0 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (cbrt.f64 (*.f64 (Rewrite<= +-lft-identity_binary64 (+.f64 0 (*.f64 -1/2 (*.f64 h (/.f64 h g))))) 1/2)) (cbrt.f64 a)) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (*.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 1 a)))))): 6 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (cbrt.f64 (*.f64 (+.f64 (Rewrite<= +-inverses_binary64 (-.f64 g g)) (*.f64 -1/2 (*.f64 h (/.f64 h g)))) 1/2)) (cbrt.f64 a)) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (*.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 1 a)))))): 6 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (cbrt.f64 (*.f64 (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 -1/2 (*.f64 h (/.f64 h g))) (-.f64 g g))) 1/2)) (cbrt.f64 a)) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (*.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 1 a)))))): 0 points increase in error, 6 points decrease in error
(+.f64 (/.f64 (cbrt.f64 (*.f64 (Rewrite=> associate-+r-_binary64 (-.f64 (+.f64 (*.f64 -1/2 (*.f64 h (/.f64 h g))) g) g)) 1/2)) (cbrt.f64 a)) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (*.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 1 a)))))): 6 points increase in error, 0 points decrease in error
(+.f64 (/.f64 (cbrt.f64 (*.f64 (-.f64 (Rewrite<= fma-udef_binary64 (fma.f64 -1/2 (*.f64 h (/.f64 h g)) g)) g) 1/2)) (cbrt.f64 a)) (*.f64 (cbrt.f64 -1/2) (*.f64 (cbrt.f64 2) (*.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 1 a)))))): 6 points increase in error, 0 points decrease in error
Final simplification1.8
\[\leadsto \frac{\sqrt[3]{\left(-0.5 \cdot \left(h \cdot \frac{h}{g}\right)\right) \cdot 0.5}}{\sqrt[3]{a}} + \sqrt[3]{-0.5} \cdot \left(\sqrt[3]{2} \cdot \left(\sqrt[3]{g} \cdot \sqrt[3]{\frac{1}{a}}\right)\right)
\]