(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 y z)))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (sqrt.f64 (+.f64 (Rewrite<= distribute-lft-out_binary64 (+.f64 (*.f64 x y) (*.f64 x z))) (*.f64 y z)))): 0 points increase in error, 0 points decrease in error
if 2.20000000000000008e-4 < y
Initial program 34.5
\[2 \cdot \sqrt{\left(x \cdot y + x \cdot z\right) + y \cdot z}
\]
Simplified34.5
\[\leadsto \color{blue}{2 \cdot \sqrt{\mathsf{fma}\left(x, y, z \cdot \left(x + y\right)\right)}}
\]
Proof
(*.f64 2 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (sqrt.f64 (fma.f64 x y (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 x z) (*.f64 y z)))))): 2 points increase in error, 3 points decrease in error
(*.f64 2 (sqrt.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 x y) (+.f64 (*.f64 x z) (*.f64 y z)))))): 0 points increase in error, 0 points decrease in error
(*.f64 2 (sqrt.f64 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 y (*.f64 y (*.f64 x x))) (pow.f64 (*.f64 z (+.f64 y x)) 2)) (-.f64 (*.f64 y (-.f64 x z)) (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 y (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 y x) x))) (pow.f64 (*.f64 z (+.f64 y x)) 2)) (-.f64 (*.f64 y (-.f64 x z)) (*.f64 z x))): 9 points increase in error, 13 points decrease in error
(/.f64 (-.f64 (*.f64 y (*.f64 (Rewrite<= *-commutative_binary64 (*.f64 x y)) x)) (pow.f64 (*.f64 z (+.f64 y x)) 2)) (-.f64 (*.f64 y (-.f64 x z)) (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (*.f64 x y) x) y)) (pow.f64 (*.f64 z (+.f64 y x)) 2)) (-.f64 (*.f64 y (-.f64 x z)) (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (Rewrite<= associate-*r*_binary64 (*.f64 (*.f64 x y) (*.f64 x y))) (pow.f64 (*.f64 z (+.f64 y x)) 2)) (-.f64 (*.f64 y (-.f64 x z)) (*.f64 z x))): 6 points increase in error, 14 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (Rewrite<= +-commutative_binary64 (+.f64 x y))) 2)) (-.f64 (*.f64 y (-.f64 x z)) (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (+.f64 x y)) 2)) (-.f64 (Rewrite<= distribute-rgt-out--_binary64 (-.f64 (*.f64 x y) (*.f64 z y))) (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (+.f64 x y)) 2)) (-.f64 (-.f64 (*.f64 x y) (Rewrite<= *-commutative_binary64 (*.f64 y z))) (*.f64 z x))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (+.f64 x y)) 2)) (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (Rewrite=> *-commutative_binary64 (*.f64 x z)))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (+.f64 x y)) 2)) (Rewrite<= associate--r+_binary64 (-.f64 (*.f64 x y) (+.f64 (*.f64 y z) (*.f64 x z))))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (+.f64 x y)) 2)) (-.f64 (*.f64 x y) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 x z) (*.f64 y z))))): 0 points increase in error, 0 points decrease in error
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (pow.f64 (*.f64 z (+.f64 x y)) 2)) (-.f64 (*.f64 x y) (Rewrite=> distribute-rgt-out_binary64 (*.f64 z (+.f64 x y))))): 2 points increase in error, 2 points decrease in error