Time bar (total: 15.1s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 6 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 7 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 8 |
| 6.3% | 6.2% | 93.6% | 0.2% | 0% | 0% | 0% | 9 |
| 9.4% | 9.4% | 90.4% | 0.2% | 0% | 0% | 0% | 10 |
| 12.7% | 12.5% | 85.6% | 0.2% | 1.8% | 0% | 0% | 11 |
| 18% | 17.2% | 78% | 0.2% | 4.7% | 0% | 0% | 12 |
Compiled 20 to 13 computations (35% saved)
| 1.6s | 7999× | body | 256 | valid |
| 652.0ms | 2473× | body | 256 | infinite |
| 86.0ms | 144× | body | 1024 | valid |
| 29.0ms | 113× | body | 512 | valid |
| 2× | egg-herbie |
| 3374× | fma-def_binary64 |
| 1265× | associate-+l+_binary64 |
| 649× | associate-+r+_binary64 |
| 522× | +-commutative_binary64 |
| 392× | distribute-rgt-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 49 | 140 |
| 1 | 170 | 119 |
| 2 | 552 | 105 |
| 3 | 1885 | 105 |
| 4 | 3143 | 105 |
| 5 | 3201 | 105 |
| 6 | 3201 | 105 |
| 7 | 3911 | 105 |
| 8 | 3911 | 105 |
| 9 | 3911 | 105 |
| 10 | 4794 | 105 |
| 11 | 4834 | 105 |
| 12 | 4858 | 105 |
| 13 | 4858 | 105 |
| 14 | 5067 | 105 |
| 15 | 5067 | 105 |
| 16 | 6493 | 105 |
| 17 | 6493 | 105 |
| 18 | 7081 | 105 |
| 19 | 7405 | 105 |
| 0 | 4 | 4 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
3 |
| Outputs |
|---|
0 |
1 |
2 |
3 |
| Inputs |
|---|
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 (+.f64 (+.f64 (+.f64 x z) z) x) t)) (*.f64 x 5)) |
(+.f64 (*.f64 z (+.f64 (+.f64 (+.f64 (+.f64 y x) x) y) t)) (*.f64 y 5)) |
(+.f64 (*.f64 t (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) x)) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 z y) y) z) t)) (*.f64 z 5)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 t z) z) t) y)) (*.f64 t 5)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y t) t) y) z)) (*.f64 y 5)) |
| Outputs |
|---|
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
(fma.f64 x (+.f64 (+.f64 y (+.f64 z z)) (+.f64 y t)) (*.f64 y 5)) |
(fma.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t) (*.f64 y 5)) |
(fma.f64 x (fma.f64 2 (+.f64 y z) t) (*.f64 y 5)) |
(fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 (+.f64 (+.f64 (+.f64 x z) z) x) t)) (*.f64 x 5)) |
(fma.f64 y (+.f64 t (+.f64 x (+.f64 x (+.f64 z z)))) (*.f64 x 5)) |
(fma.f64 x 5 (*.f64 y (+.f64 t (*.f64 2 (+.f64 x z))))) |
(fma.f64 x 5 (*.f64 y (fma.f64 2 (+.f64 x z) t))) |
(fma.f64 x 5 (*.f64 y (fma.f64 (+.f64 x z) 2 t))) |
(+.f64 (*.f64 z (+.f64 (+.f64 (+.f64 (+.f64 y x) x) y) t)) (*.f64 y 5)) |
(fma.f64 z (+.f64 t (+.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y 5)) |
(fma.f64 z (+.f64 t (*.f64 2 (+.f64 x y))) (*.f64 y 5)) |
(fma.f64 z (fma.f64 2 (+.f64 x y) t) (*.f64 y 5)) |
(fma.f64 z (fma.f64 (+.f64 x y) 2 t) (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 z (fma.f64 (+.f64 x y) 2 t))) |
(+.f64 (*.f64 t (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) x)) (*.f64 y 5)) |
(fma.f64 t (+.f64 x (+.f64 y (+.f64 y (+.f64 z z)))) (*.f64 y 5)) |
(fma.f64 t (+.f64 x (*.f64 2 (+.f64 y z))) (*.f64 y 5)) |
(fma.f64 t (fma.f64 2 (+.f64 y z) x) (*.f64 y 5)) |
(fma.f64 t (fma.f64 (+.f64 y z) 2 x) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 z y) y) z) t)) (*.f64 z 5)) |
(fma.f64 x (+.f64 (+.f64 y (+.f64 z z)) (+.f64 y t)) (*.f64 z 5)) |
(fma.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t) (*.f64 z 5)) |
(fma.f64 x (fma.f64 2 (+.f64 y z) t) (*.f64 z 5)) |
(fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 z 5)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 t z) z) t) y)) (*.f64 t 5)) |
(fma.f64 x (+.f64 y (+.f64 t (+.f64 z (+.f64 z t)))) (*.f64 t 5)) |
(fma.f64 x (+.f64 y (*.f64 2 (+.f64 z t))) (*.f64 t 5)) |
(fma.f64 x (fma.f64 2 (+.f64 z t) y) (*.f64 t 5)) |
(fma.f64 x (fma.f64 (+.f64 z t) 2 y) (*.f64 t 5)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y t) t) y) z)) (*.f64 y 5)) |
(fma.f64 x (+.f64 z (+.f64 y (+.f64 y (+.f64 t t)))) (*.f64 y 5)) |
(fma.f64 x (+.f64 z (*.f64 2 (+.f64 y t))) (*.f64 y 5)) |
(fma.f64 x (fma.f64 2 (+.f64 y t) z) (*.f64 y 5)) |
(fma.f64 x (fma.f64 (+.f64 y t) 2 z) (*.f64 y 5)) |
Compiled 23 to 16 computations (30.4% saved)
| 1× | egg-herbie |
| 594× | fma-def_binary64 |
| 247× | associate-+l+_binary64 |
| 179× | associate-+r+_binary64 |
| 79× | distribute-rgt-in_binary64 |
| 73× | distribute-lft-in_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 20 |
| 1 | 33 | 17 |
| 2 | 96 | 15 |
| 3 | 334 | 15 |
| 4 | 854 | 15 |
| 5 | 1329 | 15 |
| 6 | 1501 | 15 |
| 7 | 1515 | 15 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
| Outputs |
|---|
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
(fma.f64 x (+.f64 (+.f64 (+.f64 y z) (+.f64 y z)) t) (*.f64 y 5)) |
(fma.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t) (*.f64 y 5)) |
(fma.f64 x (fma.f64 2 (+.f64 y z) t) (*.f64 y 5)) |
(fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
Compiled 30 to 17 computations (43.3% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.1b | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| ▶ | 0.1b | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
Compiled 34 to 22 computations (35.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (+.f64 y z) z) |
| ✓ | 0.0b | (+.f64 (+.f64 (+.f64 y z) z) y) |
| ✓ | 0.0b | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
| ✓ | 0.0b | (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) |
Compiled 62 to 15 computations (75.8% saved)
36 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 17.0ms | z | @ | inf | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
| 5.0ms | x | @ | 0 | (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) |
| 2.0ms | t | @ | 0 | (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) |
| 2.0ms | x | @ | inf | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
| 1.0ms | y | @ | 0 | (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) |
| 1× | batch-egg-rewrite |
| 580× | fma-neg_binary64 |
| 301× | expm1-udef_binary64 |
| 301× | log1p-udef_binary64 |
| 235× | log-pow_binary64 |
| 211× | hypot-def_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 53 |
| 1 | 319 | 44 |
| 2 | 5266 | 44 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
(+.f64 (+.f64 (+.f64 y z) z) y) |
(+.f64 (+.f64 y z) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y (+.f64 z z)) x) (*.f64 (+.f64 y t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 1) (*.f64 (*.f64 x t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y (+.f64 z z))) (*.f64 x (+.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 3) (pow.f64 (*.f64 x t) 3)) (+.f64 (*.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x (*.f64 (+.f64 y z) 2))) (-.f64 (*.f64 (*.f64 x t) (*.f64 x t)) (*.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x (*.f64 (+.f64 y z) 2)) (neg.f64 (*.f64 (*.f64 x t) (*.f64 x t)))) (fma.f64 x (*.f64 (+.f64 y z) 2) (neg.f64 (*.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 3) (pow.f64 t 3)) x) (+.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 2) (*.f64 t (-.f64 t (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 2) (*.f64 t t)) x) (fma.f64 (+.f64 y z) 2 (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 3) (pow.f64 t 3))) (+.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 2) (*.f64 t (-.f64 t (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 2) (*.f64 t t))) (fma.f64 (+.f64 y z) 2 (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (+.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x t)) (exp.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (+.f64 y z) 2) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y z) 2) x (*.f64 x t)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (neg.f64 (*.f64 y 5)))) (/.f64 (*.f64 25 (*.f64 y y)) (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (neg.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) (sqrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3) (*.f64 125 (pow.f64 y 3))) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 25 (*.f64 y y))) (/.f64 1 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (neg.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))) (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3) (*.f64 125 (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (neg.f64 (*.f64 y 5))) (-.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 25 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3) (*.f64 125 (pow.f64 y 3))) (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3) (*.f64 125 (pow.f64 y 3))) (+.f64 (*.f64 25 (*.f64 y y)) (-.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 x (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 25 (*.f64 y y))) (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (neg.f64 (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 3) (*.f64 125 (pow.f64 y 3)))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2) (*.f64 25 (*.f64 y y)))) (neg.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (neg.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 25 (*.f64 y y)) (pow.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) 2)) (-.f64 (*.f64 y 5) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))) (pow.f64 (exp.f64 y) 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (+.f64 (*.f64 (+.f64 y z) 2) t)) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (pow.f64 (exp.f64 x) (+.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) 5) (+.f64 1 (expm1.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (+.f64 1 (expm1.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (*.f64 (+.f64 y z) 2) t) x (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 5 y (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y 5) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y 5)) 2) (cbrt.f64 (*.f64 y 5)) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) 2) (cbrt.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 5)) (sqrt.f64 (*.f64 y 5)) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) (sqrt.f64 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) (*.f64 y 5)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 y z) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (+.f64 y (-.f64 (+.f64 z z) y))) (/.f64 (*.f64 y y) (+.f64 y (-.f64 (+.f64 z z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y z) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 y z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 y z)) (+.f64 (pow.f64 (cbrt.f64 (+.f64 y z)) 2) (pow.f64 (cbrt.f64 (+.f64 y z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 y z)) 2) (+.f64 (cbrt.f64 (+.f64 y z)) (cbrt.f64 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) 2) (cbrt.f64 (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 y z)) (+.f64 (sqrt.f64 (+.f64 y z)) (sqrt.f64 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 y z) 2)) (sqrt.f64 (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 y (+.f64 z z)) 3)) (/.f64 1 (+.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y (-.f64 y (+.f64 y (+.f64 z z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y y)) (/.f64 1 (+.f64 y (-.f64 (+.f64 z z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y (-.f64 y (+.f64 y (+.f64 z z))))) (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 y (+.f64 z z)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 y (-.f64 (+.f64 z z) y)) (-.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 y (+.f64 z z)) 3)) (+.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y (-.f64 y (+.f64 y (+.f64 z z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 y (+.f64 z z)) 3)) (+.f64 (*.f64 y y) (-.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y (+.f64 y (+.f64 z z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y y)) (+.f64 y (-.f64 (+.f64 z z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 y (+.f64 z z)) 3))) (neg.f64 (+.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y (-.f64 y (+.f64 y (+.f64 z z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2) (*.f64 y y))) (neg.f64 (+.f64 y (-.f64 (+.f64 z z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (pow.f64 z 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 z (-.f64 z y)))) (*.f64 (fma.f64 y y (*.f64 z (-.f64 z y))) (+.f64 (pow.f64 z 3) (pow.f64 y 3)))) (*.f64 (fma.f64 y y (*.f64 z (-.f64 z y))) (fma.f64 y y (*.f64 z (-.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 (*.f64 y y) (*.f64 z z)) (fma.f64 y y (*.f64 z (-.f64 z y)))) (*.f64 (-.f64 y z) (+.f64 (pow.f64 z 3) (pow.f64 y 3)))) (*.f64 (-.f64 y z) (fma.f64 y y (*.f64 z (-.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (pow.f64 z 3) (pow.f64 y 3)) (-.f64 y z)) (*.f64 (fma.f64 y y (*.f64 z (-.f64 z y))) (-.f64 (*.f64 y y) (*.f64 z z)))) (*.f64 (fma.f64 y y (*.f64 z (-.f64 z y))) (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 (*.f64 y y) (*.f64 z z)) (-.f64 y z)) (*.f64 (-.f64 y z) (-.f64 (*.f64 y y) (*.f64 z z)))) (*.f64 (-.f64 y z) (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 (+.f64 y z) 3)) (+.f64 (pow.f64 (+.f64 y z) 2) (-.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 (+.f64 y z) 2)) (-.f64 (+.f64 y z) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y y) (pow.f64 (+.f64 y (+.f64 z z)) 2)) (-.f64 y (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y z) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 y z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (exp.f64 (+.f64 y (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 y) (+.f64 1 (expm1.f64 (+.f64 y (+.f64 z z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (+.f64 1 (expm1.f64 (+.f64 y (+.f64 z z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y z))) (exp.f64 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 y z)) (+.f64 1 (expm1.f64 (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y z))) (+.f64 1 (expm1.f64 (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y (+.f64 z z)))) (exp.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 y (+.f64 z z))) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y (+.f64 z z)))) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 y z) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 y z) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (+.f64 y (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y z) (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y (+.f64 z z)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 y z)) 2) (cbrt.f64 (+.f64 y z)) (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 y (+.f64 z z))) 2) (cbrt.f64 (+.f64 y (+.f64 z z))) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 y) (+.f64 y (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y z)) (sqrt.f64 (+.f64 y z)) (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y (+.f64 z z))) (sqrt.f64 (+.f64 y (+.f64 z z))) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (+.f64 y (+.f64 z z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 y (+.f64 z z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (+.f64 y z) 2) (+.f64 y (-.f64 z z))) (/.f64 (*.f64 z z) (+.f64 y (-.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 z z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 y (+.f64 z z))) (pow.f64 (cbrt.f64 (+.f64 y (+.f64 z z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 y (+.f64 z z))) 2) (cbrt.f64 (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 y (+.f64 z z))) (sqrt.f64 (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 z 3)) (/.f64 1 (+.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z (-.f64 z (+.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z z)) (/.f64 1 (+.f64 y (-.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z (-.f64 z (+.f64 y z)))) (+.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 z 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 y (-.f64 z z)) (-.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 z 3)) (+.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z (-.f64 z (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 z 3)) (+.f64 (*.f64 z z) (-.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z z)) (+.f64 y (-.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 z 3))) (neg.f64 (+.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z (-.f64 z (+.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (+.f64 y z) 2) (*.f64 z z))) (neg.f64 (+.f64 y (-.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 3) (pow.f64 (+.f64 z z) 3)) (+.f64 (*.f64 y y) (-.f64 (*.f64 (+.f64 z z) (+.f64 z z)) (*.f64 y (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y y) (*.f64 (+.f64 z z) (+.f64 z z))) (-.f64 y (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 z z) (pow.f64 (+.f64 y z) 2)) (-.f64 z (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (+.f64 z z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 y (+.f64 z z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 y (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 y (+.f64 z z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 y (+.f64 z z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 y (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (exp.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 y) (*.f64 (exp.f64 z) (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 y)) (*.f64 (exp.f64 z) (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 z)) (exp.f64 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 z) (+.f64 1 (expm1.f64 (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 z)) (+.f64 1 (expm1.f64 (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y z))) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 y z)) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 y z))) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 z z)) (exp.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 z) (exp.f64 z)) (exp.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (+.f64 z z)) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 z) (exp.f64 z)) (+.f64 1 (expm1.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 y (+.f64 z z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 y (+.f64 z z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 z (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y z) z)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 y z)) 2) (cbrt.f64 (+.f64 y z)) z)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 y) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (cbrt.f64 z) (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y z)) (sqrt.f64 (+.f64 y z)) z)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (sqrt.f64 z) (+.f64 y z)))))) |
| 1× | egg-herbie |
| 1586× | fma-neg_binary64 |
| 550× | fma-def_binary64 |
| 367× | cancel-sign-sub-inv_binary64 |
| 164× | unsub-neg_binary64 |
| 154× | sub-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 45 | 1465 |
| 1 | 121 | 1384 |
| 2 | 249 | 1384 |
| 3 | 477 | 1384 |
| 4 | 739 | 1384 |
| 5 | 1206 | 1384 |
| 6 | 2406 | 1384 |
| 7 | 3714 | 1384 |
| 8 | 4082 | 1384 |
| 9 | 4179 | 1384 |
| 10 | 4189 | 1384 |
| 11 | 4189 | 1384 |
| 12 | 5210 | 1384 |
| 13 | 5210 | 1384 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 5 y) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 5 y)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
y |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
y |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
y |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
(+.f64 (*.f64 2 z) y) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) |
(*.f64 x (*.f64 2 (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 t x) (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x)) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(*.f64 5 y) |
(*.f64 y 5) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 (fma.f64 2 z (fma.f64 2 y t)) x) |
(*.f64 (fma.f64 2 (+.f64 z y) t) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 5 y)) |
(fma.f64 x (fma.f64 2 y t) (*.f64 y 5)) |
(fma.f64 (fma.f64 2 y t) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 y t) x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 (*.f64 2 (+.f64 z y)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y))) |
(fma.f64 (fma.f64 2 z (fma.f64 2 y t)) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 (fma.f64 2 (+.f64 z y) t) x)) |
(fma.f64 (fma.f64 2 (+.f64 z y) t) x (*.f64 y 5)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(+.f64 (*.f64 2 z) (*.f64 2 y)) |
(*.f64 2 (+.f64 z y)) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
y |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
y |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
y |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(*.f64 2 z) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
(+.f64 (*.f64 2 z) y) |
(fma.f64 2 z y) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
Compiled 33 to 16 computations (51.5% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 41.0ms | y | @ | inf | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| 1.0ms | y | @ | -inf | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| 1.0ms | x | @ | 0 | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| 1.0ms | z | @ | 0 | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| 1.0ms | z | @ | inf | (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| 1× | batch-egg-rewrite |
| 640× | prod-diff_binary64 |
| 504× | log-prod_binary64 |
| 330× | pow-prod-down_binary64 |
| 303× | pow2_binary64 |
| 222× | fma-def_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 15 |
| 1 | 231 | 15 |
| 2 | 2865 | 15 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 1) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) (pow.f64 (*.f64 y 5) 3)) (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (-.f64 (pow.f64 (*.f64 y 5) 2) (*.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (pow.f64 (*.f64 y 5) 2)) (-.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) 5) (exp.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (exp.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 1)))))) |
| 1× | egg-herbie |
| 1556× | fma-neg_binary64 |
| 555× | fma-def_binary64 |
| 368× | cancel-sign-sub-inv_binary64 |
| 160× | distribute-rgt-in_binary64 |
| 159× | unsub-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 714 |
| 1 | 98 | 638 |
| 2 | 205 | 638 |
| 3 | 467 | 638 |
| 4 | 772 | 638 |
| 5 | 1244 | 638 |
| 6 | 2447 | 638 |
| 7 | 3770 | 638 |
| 8 | 4128 | 638 |
| 9 | 4209 | 638 |
| 10 | 4215 | 638 |
| 11 | 4215 | 638 |
| 12 | 5206 | 638 |
| 13 | 5206 | 638 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
| Outputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (*.f64 5 y)) |
(fma.f64 (fma.f64 2 y t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 x (fma.f64 y 2 t))) |
(fma.f64 x (fma.f64 y 2 t) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 t x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 y) t) x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 5 y)) |
(fma.f64 5 y (*.f64 2 (*.f64 (+.f64 y z) x))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
Compiled 5309 to 2764 computations (47.9% saved)
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 257 | 13 | 270 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 259 | 13 | 272 |
| Status | Error | Program |
|---|---|---|
| 39.9b | (*.f64 y 5) | |
| ▶ | 44.8b | (*.f64 t x) |
| ▶ | 23.2b | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| 22.5b | (+.f64 (*.f64 t x) (*.f64 y 5)) | |
| 18.0b | (fma.f64 5 y (*.f64 2 (*.f64 (+.f64 y z) x))) | |
| ▶ | 0.1b | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
| 0.1b | (fma.f64 (+.f64 (*.f64 (+.f64 y z) 2) t) x (*.f64 y 5)) | |
| ▶ | 34.2b | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| ▶ | 0.0b | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
| 46.7b | (*.f64 2 (*.f64 z x)) | |
| 24.0b | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) | |
| 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) | |
| 29.0b | (*.f64 (+.f64 (*.f64 2 z) t) x) |
Compiled 332 to 242 computations (27.1% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) |
| ✓ | 0.0b | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
Compiled 46 to 22 computations (52.2% saved)
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | -inf | (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) |
| 1.0ms | y | @ | 0 | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
| 1.0ms | y | @ | -inf | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
| 1.0ms | x | @ | 0 | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
| 1.0ms | y | @ | inf | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
| 1× | batch-egg-rewrite |
| 632× | log-prod_binary64 |
| 468× | fma-def_binary64 |
| 355× | pow2_binary64 |
| 247× | pow1/3_binary64 |
| 247× | fma-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 26 |
| 1 | 267 | 26 |
| 2 | 3714 | 26 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
(*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y 5) 1) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 5 (*.f64 x (*.f64 (+.f64 y z) 2))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y 5) 3) (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3)) (+.f64 (pow.f64 (*.f64 y 5) 2) (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (*.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y 5) 2) (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2)) (-.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (fma.f64 (+.f64 y z) 2 t)) x) (exp.f64 (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))) (exp.f64 (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y 5)) (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 1) (*.f64 (*.f64 x t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 (+.f64 y z) 2 t)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 (+.f64 y z) 2 t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 (+.f64 y z) 2 t)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 (+.f64 y z) 2 t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 3) (pow.f64 (*.f64 x t) 3)) (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (-.f64 (pow.f64 (*.f64 x t) 2) (*.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (pow.f64 (*.f64 x t) 2)) (-.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 (+.f64 y z) 3) 8 (pow.f64 t 3)) x) (fma.f64 t (-.f64 t (*.f64 (+.f64 y z) 2)) (*.f64 (pow.f64 (+.f64 y z) 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 (+.f64 y z) 2) 4) (*.f64 t t)) x) (-.f64 (*.f64 (+.f64 y z) 2) t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 (pow.f64 (+.f64 y z) 3) 8 (pow.f64 t 3))) (fma.f64 t (-.f64 t (*.f64 (+.f64 y z) 2)) (*.f64 (pow.f64 (+.f64 y z) 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 (pow.f64 (+.f64 y z) 2) 4) (*.f64 t t))) (-.f64 (*.f64 (+.f64 y z) 2) t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 (+.f64 y z) 2 t) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 (+.f64 y z) 2 t) 3) (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 (+.f64 y z) 2 t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x t)) (exp.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 (+.f64 y z) 2 t) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 (+.f64 y z) 2 t) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (+.f64 y z) 2) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x t (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y z) (*.f64 2 x) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y z) 2) x (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t x (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) 2) (*.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) x) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) x) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 y z) 2)) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) 2)) x) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) x) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 1 (*.f64 (*.f64 x t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x t)) 2) (cbrt.f64 (*.f64 x t)) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) 2) (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x t)) (sqrt.f64 (*.f64 x t)) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) 2)) (sqrt.f64 x)) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) 2)) (sqrt.f64 x)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 t)) (*.f64 (sqrt.f64 x) (sqrt.f64 t)) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 t) (sqrt.f64 x)) (*.f64 (sqrt.f64 t) (sqrt.f64 x)) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 (+.f64 y z) 2))) (*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 (+.f64 y z) 2))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (+.f64 y z) 2) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (+.f64 y z) 2) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 t)) (sqrt.f64 t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (+.f64 y z)) 2 (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 2) (+.f64 y z) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) 2)) 2)) (cbrt.f64 (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 (+.f64 y z) 2))) (sqrt.f64 (*.f64 (+.f64 y z) 2)) (*.f64 x t)))))) |
| 1× | egg-herbie |
| 1556× | fma-neg_binary64 |
| 547× | fma-def_binary64 |
| 369× | cancel-sign-sub-inv_binary64 |
| 160× | unsub-neg_binary64 |
| 151× | distribute-rgt-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 1323 |
| 1 | 120 | 1129 |
| 2 | 253 | 1129 |
| 3 | 463 | 1129 |
| 4 | 724 | 1129 |
| 5 | 1191 | 1129 |
| 6 | 2391 | 1129 |
| 7 | 3713 | 1129 |
| 8 | 4069 | 1129 |
| 9 | 4150 | 1129 |
| 10 | 4156 | 1129 |
| 11 | 4156 | 1129 |
| 12 | 5147 | 1129 |
| 13 | 5147 | 1129 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 5 y)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 (fma.f64 2 z t) x) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 5 y) |
(*.f64 y 5) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 5 y)) |
(fma.f64 x (fma.f64 2 y t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(fma.f64 x (*.f64 2 (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 (fma.f64 2 z t) x)) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 (+.f64 z y) t))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 (fma.f64 2 z t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 x y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 x y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 x (fma.f64 2 y t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 2 (+.f64 z y)))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
Compiled 9 to 5 computations (44.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
Compiled 23 to 17 computations (26.1% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 1.0ms | x | @ | 0 | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 0.0ms | y | @ | inf | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 1× | batch-egg-rewrite |
| 837× | pow1_binary64 |
| 782× | add-log-exp_binary64 |
| 781× | log1p-expm1-u_binary64 |
| 781× | expm1-log1p-u_binary64 |
| 769× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 8 |
| 1 | 172 | 8 |
| 2 | 2073 | 8 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 2 x) y) (*.f64 5 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 5 y) (*.f64 (*.f64 2 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 2 x)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 5) (*.f64 y (*.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 2 x 5) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 125 (*.f64 8 (pow.f64 x 3))) y) (+.f64 (*.f64 4 (*.f64 x x)) (-.f64 25 (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 4 (*.f64 x x)) -25) y) (fma.f64 2 x -5))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 125 (*.f64 8 (pow.f64 x 3)))) (+.f64 (*.f64 4 (*.f64 x x)) (-.f64 25 (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (*.f64 4 (*.f64 x x)) -25)) (fma.f64 2 x -5))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 2 x 5) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 2 x 5) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 2 x 5) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 2 x 5)) y))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 2 x 5) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (fma.f64 2 x 5) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 2 x 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 2 x 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 2 x 5) y))))))) |
| 1× | egg-herbie |
| 14× | fma-def_binary64 |
| 6× | *-commutative_binary64 |
| 4× | associate-*l*_binary64 |
| 2× | +-commutative_binary64 |
| 2× | associate-*r*_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 205 |
| 1 | 27 | 154 |
| 2 | 43 | 154 |
| 3 | 46 | 154 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
| Outputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(fma.f64 2 (*.f64 y x) (*.f64 5 y)) |
(*.f64 y (fma.f64 2 x 5)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
Compiled 33 to 15 computations (54.5% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | t | @ | 0 | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| 0.0ms | t | @ | inf | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| 0.0ms | t | @ | -inf | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| 0.0ms | z | @ | inf | (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| 1× | batch-egg-rewrite |
| 550× | log-prod_binary64 |
| 420× | fma-def_binary64 |
| 399× | pow-prod-down_binary64 |
| 302× | pow2_binary64 |
| 209× | pow1/3_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 13 |
| 1 | 224 | 11 |
| 2 | 3239 | 11 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 2 (+.f64 y z) t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 t x) (*.f64 (*.f64 2 (+.f64 y z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 2 (+.f64 y z)) x) (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x t) (*.f64 x (*.f64 2 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 2 (+.f64 y z))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 2 (+.f64 y z) t)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 2 (+.f64 y z) t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 2 (+.f64 y z) t)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 2 (+.f64 y z) t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 (+.f64 y z) 3) 8 (pow.f64 t 3)) x) (fma.f64 t t (*.f64 (*.f64 2 (+.f64 y z)) (-.f64 (*.f64 2 (+.f64 y z)) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 (pow.f64 (+.f64 y z) 2) 4)) x) (+.f64 t (*.f64 -2 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 (pow.f64 (+.f64 y z) 3) 8 (pow.f64 t 3))) (fma.f64 t t (*.f64 (*.f64 2 (+.f64 y z)) (-.f64 (*.f64 2 (+.f64 y z)) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 t t) (*.f64 (pow.f64 (+.f64 y z) 2) 4))) (+.f64 t (*.f64 -2 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 2 (+.f64 y z) t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 2 (+.f64 y z) t) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t x (*.f64 (*.f64 2 (+.f64 y z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (+.f64 y z)) x (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x t (*.f64 x (*.f64 2 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2 (+.f64 y z)) (*.f64 x t)))))) |
| 1× | egg-herbie |
| 77× | fma-def_binary64 |
| 15× | *-commutative_binary64 |
| 9× | associate-*l*_binary64 |
| 9× | distribute-rgt-in_binary64 |
| 8× | associate-*r*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 440 |
| 1 | 54 | 413 |
| 2 | 111 | 359 |
| 3 | 165 | 359 |
| 4 | 171 | 359 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
| Outputs |
|---|
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 t x) |
(*.f64 x t) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 t x) |
(*.f64 x t) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 x (fma.f64 2 y t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
(+.f64 (*.f64 x (+.f64 (*.f64 2 y) t)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 x t)) |
(*.f64 x (+.f64 (*.f64 2 (+.f64 y z)) t)) |
(*.f64 x (fma.f64 2 (+.f64 y z) t)) |
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) |
| ✓ | 0.0b | (*.f64 x (*.f64 (+.f64 y z) 2)) |
| ✓ | 0.0b | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
Compiled 57 to 26 computations (54.4% saved)
33 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | x | @ | 0 | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
| 1.0ms | y | @ | inf | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
| 1.0ms | y | @ | 0 | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
| 1.0ms | t | @ | 0 | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
| 1.0ms | x | @ | -inf | (+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
| 1× | batch-egg-rewrite |
| 808× | log-prod_binary64 |
| 484× | fma-neg_binary64 |
| 290× | expm1-udef_binary64 |
| 290× | log1p-udef_binary64 |
| 231× | log-pow_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 42 |
| 1 | 316 | 36 |
| 2 | 4585 | 36 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
(*.f64 x (*.f64 (+.f64 y z) 2)) |
(+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (neg.f64 (*.f64 y 5)))) (/.f64 (pow.f64 (*.f64 y 5) 2) (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (neg.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) (*.f64 125 (pow.f64 y 3))) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (pow.f64 (*.f64 y 5) 2)) (/.f64 1 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (neg.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t))))) (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) (*.f64 125 (pow.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (neg.f64 (*.f64 y 5))) (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (pow.f64 (*.f64 y 5) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) (*.f64 125 (pow.f64 y 3))) (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) (*.f64 125 (pow.f64 y 3))) (+.f64 (pow.f64 (*.f64 y 5) 2) (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (*.f64 x (*.f64 (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (pow.f64 (*.f64 y 5) 2)) (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (neg.f64 (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) (*.f64 125 (pow.f64 y 3)))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2) (pow.f64 (*.f64 y 5) 2))) (neg.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (neg.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) (pow.f64 (fma.f64 x t (*.f64 y 5)) 3)) (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (-.f64 (*.f64 (fma.f64 x t (*.f64 y 5)) (fma.f64 x t (*.f64 y 5))) (*.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (fma.f64 x t (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 (fma.f64 x t (*.f64 y 5)) (fma.f64 x t (*.f64 y 5)))) (fma.f64 x (*.f64 (+.f64 y z) 2) (neg.f64 (fma.f64 x t (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y 5) 2) (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2)) (-.f64 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))) (exp.f64 (fma.f64 x t (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2)) (*.f64 (pow.f64 (exp.f64 t) x) (pow.f64 (exp.f64 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))) (*.f64 (pow.f64 (exp.f64 t) x) (pow.f64 (exp.f64 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))) (pow.f64 (exp.f64 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (fma.f64 (+.f64 y z) 2 t)) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (pow.f64 (exp.f64 x) (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 5) y) (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x t (*.f64 y 5))) (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 t) x) (pow.f64 (exp.f64 5) y)) (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x t (*.f64 y 5))) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 t) x) (pow.f64 (exp.f64 5) y)) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (+.f64 y z) 2) (fma.f64 x t (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 5 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y z) 2) x (fma.f64 x t (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 5 y (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 (+.f64 y z) 2)) (fma.f64 x t (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y 5) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 2) (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) 2) (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (fma.f64 x t (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 y 5) 2)) (cbrt.f64 (*.f64 y 5)) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) (sqrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (fma.f64 x t (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 5)) (sqrt.f64 (*.f64 y 5)) (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (+.f64 y z)) 2 (fma.f64 x t (*.f64 y 5))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y z)) (*.f64 x (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 x (-.f64 (*.f64 (+.f64 y z) 2) t))) (/.f64 (pow.f64 (*.f64 x t) 2) (*.f64 x (-.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (fma.f64 (+.f64 y z) 2 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 2) (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) (sqrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) (pow.f64 (*.f64 x t) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 (*.f64 x t) (-.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (pow.f64 (*.f64 x t) 2)) (/.f64 1 (*.f64 x (-.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (+.f64 y z) 2 t) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 (*.f64 x t) (-.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2))))) (+.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) (pow.f64 (*.f64 x t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x (-.f64 (*.f64 (+.f64 y z) 2) t)) (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (pow.f64 (*.f64 x t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) (pow.f64 (*.f64 x t) 3)) (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 (*.f64 x t) (-.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) (pow.f64 (*.f64 x t) 3)) (+.f64 (pow.f64 (*.f64 x t) 2) (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 x (*.f64 (*.f64 (+.f64 y z) 2) (*.f64 x t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (pow.f64 (*.f64 x t) 2)) (*.f64 x (-.f64 (*.f64 (+.f64 y z) 2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 (*.f64 x (+.f64 y z)) 3) 8) (pow.f64 (*.f64 x t) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (*.f64 (*.f64 x t) (-.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2) (pow.f64 (*.f64 x t) 2))) (neg.f64 (*.f64 x (-.f64 (*.f64 (+.f64 y z) 2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x t) 2) (pow.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) 2)) (-.f64 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 (+.f64 y z) 2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))) (pow.f64 (exp.f64 t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2)) (+.f64 1 (expm1.f64 (*.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2)))) (+.f64 1 (expm1.f64 (*.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x t))) (pow.f64 (exp.f64 x) (*.f64 (+.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 t) x) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x t))) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 (+.f64 y z) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 (+.f64 y z) 2 t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (+.f64 y z) 2) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x t (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y z) 2) x (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t x (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x t) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) 2) (cbrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x t) 2)) (cbrt.f64 (*.f64 x t)) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (sqrt.f64 (*.f64 x (*.f64 (+.f64 y z) 2))) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x t)) (sqrt.f64 (*.f64 x t)) (*.f64 x (*.f64 (+.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (+.f64 y z)) 2 (*.f64 x t)))))) |
| 1× | egg-herbie |
| 1354× | fma-neg_binary64 |
| 680× | fma-def_binary64 |
| 203× | cancel-sign-sub-inv_binary64 |
| 168× | associate--r+_binary64 |
| 163× | distribute-rgt-in_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 55 | 1637 |
| 1 | 165 | 1477 |
| 2 | 383 | 1471 |
| 3 | 853 | 1471 |
| 4 | 1625 | 1471 |
| 5 | 3033 | 1471 |
| 6 | 3813 | 1471 |
| 7 | 3887 | 1471 |
| 8 | 3897 | 1471 |
| 9 | 3897 | 1471 |
| 10 | 4862 | 1471 |
| 11 | 4862 | 1471 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) (*.f64 5 y)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) (*.f64 5 y)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 x) 5) y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 x) 5) y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 x) 5) y) (*.f64 2 (*.f64 z x)))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
| Outputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 (*.f64 2 z) t)) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 x) 5) y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 x) 5) y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 (+.f64 (*.f64 2 x) 5) y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 2 (*.f64 y x) (fma.f64 t x (*.f64 5 y))) |
(fma.f64 t x (*.f64 y (fma.f64 2 x 5))) |
(fma.f64 5 y (*.f64 x (fma.f64 y 2 t))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 2 (*.f64 (+.f64 y z) x) (*.f64 5 y)) |
(fma.f64 (*.f64 2 (+.f64 y z)) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 2 (*.f64 (+.f64 y z) x))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (+.f64 (*.f64 t x) (*.f64 5 y))) |
(fma.f64 5 y (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x)) |
(fma.f64 (fma.f64 2 (+.f64 y z) t) x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 (fma.f64 2 (+.f64 y z) t) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) (*.f64 -2 (+.f64 y z))) x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 z x))) |
(*.f64 x (+.f64 (*.f64 2 z) t)) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(fma.f64 2 (*.f64 y x) (*.f64 t x)) |
(*.f64 x (+.f64 t (*.f64 y 2))) |
(*.f64 x (fma.f64 y 2 t)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x)))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 t x)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(*.f64 (fma.f64 2 (+.f64 y z) t) x) |
Compiled 5944 to 3218 computations (45.9% saved)
17 alts after pruning (15 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 346 | 11 | 357 |
| Fresh | 4 | 4 | 8 |
| Picked | 1 | 0 | 1 |
| Done | 2 | 2 | 4 |
| Total | 353 | 17 | 370 |
| Status | Error | Program |
|---|---|---|
| 46.7b | (*.f64 x (*.f64 2 z)) | |
| ▶ | 41.1b | (*.f64 2 (*.f64 (+.f64 y z) x)) |
| 24.0b | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) | |
| 39.2b | (*.f64 x (+.f64 (*.f64 2 y) t)) | |
| 56.8b | (*.f64 y (*.f64 2 x)) | |
| 29.0b | (*.f64 (+.f64 (*.f64 2 z) t) x) | |
| 0.1b | (fma.f64 (+.f64 (*.f64 (+.f64 y z) 2) t) x (*.f64 y 5)) | |
| ▶ | 39.9b | (*.f64 y 5) |
| 29.0b | (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) | |
| ✓ | 34.2b | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 16.5b | (fma.f64 y 5 (*.f64 x (+.f64 (*.f64 2 y) t))) | |
| ✓ | 44.8b | (*.f64 t x) |
| ▶ | 22.5b | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 23.2b | (fma.f64 x t (*.f64 x (*.f64 2 (+.f64 y z)))) | |
| 18.0b | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) | |
| ▶ | 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| ▶ | 34.2b | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
Compiled 386 to 282 computations (26.9% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0b | (*.f64 (+.f64 (*.f64 2 x) 5) y) | |
| ✓ | 0.0b | (*.f64 (+.f64 (*.f64 2 z) t) x) |
Compiled 55 to 36 computations (34.5% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | (+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 1.0ms | z | @ | 0 | (+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 (*.f64 2 z) t) x) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 (*.f64 2 z) t) x) |
| 0.0ms | t | @ | 0 | (*.f64 (+.f64 (*.f64 2 z) t) x) |
| 1× | batch-egg-rewrite |
| 763× | log-prod_binary64 |
| 624× | fma-def_binary64 |
| 337× | fma-neg_binary64 |
| 284× | expm1-udef_binary64 |
| 284× | log1p-udef_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 24 |
| 1 | 312 | 24 |
| 2 | 4279 | 24 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 z z) x) (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 t x) (*.f64 (+.f64 z z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 z z)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x t) (*.f64 x (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x)) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 2 z t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 8 (pow.f64 z 3) (pow.f64 t 3)) x) (fma.f64 t (-.f64 t (+.f64 z z)) (pow.f64 (+.f64 z z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (+.f64 z z) 2) (*.f64 t t)) x) (-.f64 (+.f64 z z) t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 8 (pow.f64 z 3) (pow.f64 t 3))) (fma.f64 t (-.f64 t (+.f64 z z)) (pow.f64 (+.f64 z z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (pow.f64 (+.f64 z z) 2) (*.f64 t t))) (-.f64 (+.f64 z z) t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 2 z t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 2 z t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 2 z t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 z t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 2 z t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 2 z t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 2 z t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 2 z t) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 z z) x (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t x (*.f64 (+.f64 z z) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 z z) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x t (*.f64 x (+.f64 z z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2) (-.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y))) (/.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2) (-.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) (pow.f64 (cbrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) 2) (cbrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) (sqrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3)) (/.f64 1 (fma.f64 (*.f64 (fma.f64 2 x 5) y) (-.f64 (*.f64 (fma.f64 2 x 5) y) (*.f64 (fma.f64 2 z t) x)) (pow.f64 (*.f64 (fma.f64 2 z t) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2)) (/.f64 1 (-.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (fma.f64 2 x 5) y) (-.f64 (*.f64 (fma.f64 2 x 5) y) (*.f64 (fma.f64 2 z t) x)) (pow.f64 (*.f64 (fma.f64 2 z t) x) 2)) (+.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y)) (-.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3)) (fma.f64 (*.f64 (fma.f64 2 x 5) y) (-.f64 (*.f64 (fma.f64 2 x 5) y) (*.f64 (fma.f64 2 z t) x)) (pow.f64 (*.f64 (fma.f64 2 z t) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3)) (+.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2) (-.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2) (*.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2)) (-.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 3) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 3))) (neg.f64 (fma.f64 (*.f64 (fma.f64 2 x 5) y) (-.f64 (*.f64 (fma.f64 2 x 5) y) (*.f64 (fma.f64 2 z t) x)) (pow.f64 (*.f64 (fma.f64 2 z t) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 2 z t) x) 2) (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2))) (neg.f64 (-.f64 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2) (pow.f64 (*.f64 (fma.f64 2 z t) x) 2)) (-.f64 (*.f64 (fma.f64 2 x 5) y) (*.f64 (fma.f64 2 z t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 z t) x))) (pow.f64 (exp.f64 (fma.f64 2 x 5)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (fma.f64 2 z t)) x) (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 x 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 z t) x))) (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 x 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 x 5) y))) (pow.f64 (exp.f64 (fma.f64 2 z t)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (fma.f64 2 x 5)) y) (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 z t) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 x 5) y))) (+.f64 1 (expm1.f64 (*.f64 (fma.f64 2 z t) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2 z t) x (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 2 z t) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2 z t) x) 1 (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 2 x 5) y (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (fma.f64 2 x 5) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2 x 5) y) 1 (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (fma.f64 2 z t) x) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (fma.f64 2 x 5) y) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2 x 5)) 2) (*.f64 (cbrt.f64 (fma.f64 2 x 5)) y) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (fma.f64 2 z t) x)) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 2 z t) x)) 2) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 2 z t) x)) 2) (cbrt.f64 (*.f64 (fma.f64 2 z t) x)) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (fma.f64 2 x 5)) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 2 z t)) 2) (*.f64 (cbrt.f64 (fma.f64 2 z t)) x) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (fma.f64 2 x 5) y)) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2)) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 2 x 5) y) 2)) (cbrt.f64 (*.f64 (fma.f64 2 x 5) y)) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 2 z t)) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2 x 5)) (*.f64 (sqrt.f64 (fma.f64 2 x 5)) y) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (fma.f64 2 z t) x)) (sqrt.f64 (*.f64 (fma.f64 2 z t) x)) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (fma.f64 2 x 5)) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 2 z t)) (*.f64 (sqrt.f64 (fma.f64 2 z t)) x) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (fma.f64 2 x 5) y)) (sqrt.f64 (*.f64 (fma.f64 2 x 5) y)) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 2 z t)) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2 z t) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2 z t) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (fma.f64 2 z t)) 2)) (cbrt.f64 (fma.f64 2 z t)) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (fma.f64 2 z t))) (sqrt.f64 (fma.f64 2 z t)) (*.f64 (fma.f64 2 x 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2 x 5) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 2 x 5) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (fma.f64 2 x 5)) 2)) (cbrt.f64 (fma.f64 2 x 5)) (*.f64 (fma.f64 2 z t) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (fma.f64 2 x 5))) (sqrt.f64 (fma.f64 2 x 5)) (*.f64 (fma.f64 2 z t) x)))))) |
| 1× | egg-herbie |
| 1569× | fma-neg_binary64 |
| 704× | fma-def_binary64 |
| 260× | cancel-sign-sub-inv_binary64 |
| 211× | distribute-rgt-in_binary64 |
| 147× | unsub-neg_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 38 | 962 |
| 1 | 95 | 806 |
| 2 | 242 | 770 |
| 3 | 584 | 770 |
| 4 | 1195 | 770 |
| 5 | 2527 | 770 |
| 6 | 3857 | 770 |
| 7 | 4195 | 770 |
| 8 | 4276 | 770 |
| 9 | 4290 | 770 |
| 10 | 4290 | 770 |
| 11 | 5092 | 770 |
| 12 | 5092 | 770 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (*.f64 y (+.f64 5 (*.f64 2 x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(*.f64 5 y) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) (*.f64 5 y)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) (*.f64 5 y)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) (*.f64 5 y)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
| Outputs |
|---|
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 t x) (*.f64 y (+.f64 5 (*.f64 2 x)))) |
(fma.f64 t x (*.f64 y (fma.f64 2 x 5))) |
(fma.f64 t x (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 y 5 (*.f64 x (fma.f64 2 y t))) |
(fma.f64 x (fma.f64 2 y t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 2 (*.f64 x z) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 y 5 (*.f64 (*.f64 x 2) (+.f64 z y))) |
(fma.f64 x (*.f64 2 (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x)))) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 5 y) |
(*.f64 y 5) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) (*.f64 5 y)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x) |
(*.f64 x (fma.f64 2 z (fma.f64 2 y t))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 5 y) (*.f64 (+.f64 (*.f64 2 z) (+.f64 (*.f64 2 y) t)) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) |
(*.f64 x (fma.f64 2 z (fma.f64 2 y t))) |
(*.f64 x (fma.f64 2 (+.f64 z y) t)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) (*.f64 5 y)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) (*.f64 5 y)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -1 (+.f64 (*.f64 2 z) t))) x)) (*.f64 5 y)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(fma.f64 t x (*.f64 2 (*.f64 x z))) |
(*.f64 x (fma.f64 2 z t)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (fma.f64 x 2 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 (+.f64 (*.f64 2 z) t) x)) |
(fma.f64 t x (fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z)))) |
(fma.f64 x (fma.f64 2 z t) (*.f64 y (fma.f64 x 2 5))) |
(fma.f64 x (fma.f64 2 (+.f64 z y) t) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (fma.f64 x 2 5)) |
Compiled 9 to 7 computations (22.2% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 2 (*.f64 (+.f64 y z) x)) |
| ✓ | 0.0b | (*.f64 (+.f64 y z) x) |
Compiled 23 to 9 computations (60.9% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 y z) x) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 y z) x) |
| 0.0ms | y | @ | 0 | (*.f64 (+.f64 y z) x) |
| 0.0ms | y | @ | inf | (*.f64 (+.f64 y z) x) |
| 0.0ms | z | @ | 0 | (*.f64 (+.f64 y z) x) |
| 1× | batch-egg-rewrite |
| 906× | pow1_binary64 |
| 841× | add-log-exp_binary64 |
| 840× | log1p-expm1-u_binary64 |
| 840× | expm1-log1p-u_binary64 |
| 824× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 17 |
| 1 | 171 | 17 |
| 2 | 2257 | 17 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 y z) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x z) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (+.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 3) (pow.f64 z 3)) x) (fma.f64 y y (*.f64 z (-.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 y y) (*.f64 z z)) x) (-.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 y 3) (pow.f64 z 3))) (fma.f64 y y (*.f64 z (-.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 y y) (*.f64 z z))) (-.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (+.f64 y z) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 y z) x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (+.f64 y z) (*.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y z) (*.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 y z) (*.f64 x 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 y z) (*.f64 x 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 y z) (*.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 (+.f64 y z) x) 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x) (+.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 y z) (*.f64 x 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 y z) (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 y z) (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 y z) (*.f64 x 2)))))))) |
| 1× | egg-herbie |
| 20× | fma-def_binary64 |
| 13× | *-commutative_binary64 |
| 9× | associate-*r*_binary64 |
| 8× | associate-*l*_binary64 |
| 7× | distribute-rgt-out_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 372 |
| 1 | 26 | 372 |
| 2 | 55 | 372 |
| 3 | 80 | 372 |
| 4 | 81 | 372 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
| Outputs |
|---|
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(*.f64 y x) |
(*.f64 x y) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(*.f64 z x) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(+.f64 (*.f64 z x) (*.f64 y x)) |
(*.f64 x (+.f64 z y)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (*.f64 z x) 2) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 x y) 2) |
(*.f64 y (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 x y) 2) |
(*.f64 y (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 x y) 2) |
(*.f64 y (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (*.f64 z x) 2) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (*.f64 z x) 2) |
(*.f64 z (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
(*.f64 (+.f64 z y) (*.f64 x 2)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 t x) (*.f64 y 5)) |
Compiled 21 to 11 computations (47.6% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | t | @ | 0 | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 0.0ms | t | @ | inf | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 0.0ms | t | @ | -inf | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 1× | batch-egg-rewrite |
| 882× | pow1_binary64 |
| 820× | add-log-exp_binary64 |
| 820× | log1p-expm1-u_binary64 |
| 820× | expm1-log1p-u_binary64 |
| 803× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 8 |
| 1 | 170 | 8 |
| 2 | 2229 | 8 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 t x) (*.f64 y 5)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 t x (*.f64 y 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 t x) 2) (+.f64 (*.f64 t x) (*.f64 -5 y))) (/.f64 (*.f64 (*.f64 y y) 25) (+.f64 (*.f64 t x) (*.f64 -5 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 t x (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 t x (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 t x (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 t x (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 t x (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 t x (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 t x (*.f64 y 5))) (sqrt.f64 (fma.f64 t x (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 t x) 3) (*.f64 (pow.f64 y 3) 125)) (/.f64 1 (+.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 t x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y y) 25)) (/.f64 1 (+.f64 (*.f64 t x) (*.f64 -5 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 t x)))) (+.f64 (pow.f64 (*.f64 t x) 3) (*.f64 (pow.f64 y 3) 125))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 t x) (*.f64 -5 y)) (-.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y y) 25))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 t x) 3) (*.f64 (pow.f64 y 3) 125)) (+.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 t x) 3) (*.f64 (pow.f64 y 3) 125)) (+.f64 (*.f64 (*.f64 y y) 25) (-.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 t x) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y y) 25)) (+.f64 (*.f64 t x) (*.f64 -5 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 t x) 3) (*.f64 (pow.f64 y 3) 125))) (neg.f64 (+.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 t x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 t x) 2) (*.f64 (*.f64 y y) 25))) (neg.f64 (+.f64 (*.f64 t x) (*.f64 -5 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 y y) 25) (pow.f64 (*.f64 t x) 2)) (-.f64 (*.f64 y 5) (*.f64 t x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 t x (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 t x (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 t x (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 t x (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 t x (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 t x (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 t x (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 t x (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 t x (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 t x (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t x (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x t (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 5 (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 5 y (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 t x) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y 5) (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y 5)) 2) (cbrt.f64 (*.f64 y 5)) (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 t x)) 2) (cbrt.f64 (*.f64 t x)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 5)) (sqrt.f64 (*.f64 y 5)) (*.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 t x)) (sqrt.f64 (*.f64 t x)) (*.f64 y 5)))))) |
| 1× | egg-herbie |
| 4× | fma-def_binary64 |
| 2× | *-commutative_binary64 |
| 1× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 252 |
| 1 | 12 | 252 |
| 2 | 15 | 252 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
| Outputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(*.f64 5 y) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
(+.f64 (*.f64 t x) (*.f64 5 y)) |
(fma.f64 t x (*.f64 5 y)) |
(fma.f64 5 y (*.f64 t x)) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 2 (*.f64 y x)) |
| ✓ | 0.0b | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
Compiled 24 to 13 computations (45.8% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | (*.f64 2 (*.f64 y x)) |
| 1.0ms | y | @ | 0 | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
| 1.0ms | y | @ | -inf | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
| 1.0ms | y | @ | inf | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
| 1.0ms | x | @ | -inf | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
| 1× | batch-egg-rewrite |
| 740× | pow1_binary64 |
| 683× | add-log-exp_binary64 |
| 683× | log1p-expm1-u_binary64 |
| 683× | expm1-log1p-u_binary64 |
| 671× | add-exp-log_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 18 |
| 1 | 163 | 18 |
| 2 | 1835 | 18 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
(*.f64 2 (*.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 2)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 5) (*.f64 y (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y 5) 1) (*.f64 y (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y 5 (*.f64 y (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) (pow.f64 (cbrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) 2) (cbrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) (sqrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y 5) 3) (pow.f64 (*.f64 y (*.f64 x 2)) 3)) (+.f64 (*.f64 (*.f64 y 5) (*.f64 y 5)) (-.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 4) (*.f64 (*.f64 y 5) (*.f64 y (*.f64 x 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 y 5) (*.f64 y 5)) (*.f64 (pow.f64 (*.f64 y x) 2) 4)) (-.f64 (*.f64 y 5) (*.f64 y (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y 5 (*.f64 y (*.f64 x 2))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 y x) 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 x 2)))))))) |
| 1× | egg-herbie |
| 294× | fma-def_binary64 |
| 157× | fma-neg_binary64 |
| 52× | cancel-sign-sub-inv_binary64 |
| 34× | distribute-rgt-neg-in_binary64 |
| 32× | associate-*l*_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 228 |
| 1 | 43 | 186 |
| 2 | 86 | 186 |
| 3 | 161 | 186 |
| 4 | 247 | 186 |
| 5 | 313 | 186 |
| 6 | 468 | 186 |
| 7 | 689 | 186 |
| 8 | 974 | 186 |
| 9 | 1049 | 186 |
| 10 | 1055 | 186 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 5 y) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
| Outputs |
|---|
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 5 y) |
(*.f64 y 5) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
Compiled 4098 to 2580 computations (37% saved)
17 alts after pruning (11 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 260 | 6 | 266 |
| Fresh | 5 | 5 | 10 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 5 | 6 |
| Total | 266 | 17 | 283 |
| Status | Error | Program |
|---|---|---|
| ▶ | 18.0b | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| ✓ | 41.1b | (*.f64 2 (*.f64 (+.f64 y z) x)) |
| ✓ | 44.8b | (*.f64 t x) |
| 29.0b | (*.f64 (+.f64 (*.f64 2 z) t) x) | |
| ▶ | 24.0b | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| ▶ | 39.2b | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 22.5b | (fma.f64 y 5 (*.f64 t x)) | |
| ▶ | 18.0b | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
| 29.0b | (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) | |
| ✓ | 34.2b | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 46.7b | (*.f64 z (*.f64 x 2)) | |
| ✓ | 34.2b | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
| ✓ | 22.5b | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 23.2b | (fma.f64 x t (*.f64 x (*.f64 2 (+.f64 y z)))) | |
| 22.5b | (fma.f64 x t (*.f64 y 5)) | |
| ▶ | 56.8b | (*.f64 y (*.f64 x 2)) |
| ✓ | 39.9b | (*.f64 y 5) |
Compiled 321 to 235 computations (26.8% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (*.f64 2 x) (+.f64 z y)) |
| ✓ | 0.0b | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
Compiled 32 to 17 computations (46.9% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
| 0.0ms | y | @ | inf | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
| 0.0ms | y | @ | -inf | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
| 0.0ms | z | @ | inf | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
| 0.0ms | x | @ | -inf | (fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
| 1× | batch-egg-rewrite |
| 983× | prod-diff_binary64 |
| 527× | log-prod_binary64 |
| 286× | pow2_binary64 |
| 281× | fma-def_binary64 |
| 201× | pow1/3_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 24 |
| 1 | 219 | 24 |
| 2 | 2928 | 24 |
| 1× | node limit |
| Inputs |
|---|
(fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
(*.f64 (*.f64 2 x) (+.f64 z y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 x (+.f64 y z))) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 5) (*.f64 2 (*.f64 x (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y 5) 1) (*.f64 2 (*.f64 x (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 5 (*.f64 2 (*.f64 x z))) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) (sqrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y 5) 3) (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 3)) (+.f64 (pow.f64 (*.f64 y 5) 2) (-.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 2) (*.f64 (*.f64 y 5) (*.f64 2 (*.f64 x (+.f64 y z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y 5) 2) (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 2)) (-.f64 (*.f64 y 5) (*.f64 2 (*.f64 x (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (+.f64 y z)) (+.f64 x x)) (exp.f64 (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 2 (*.f64 x (+.f64 y z))))) (exp.f64 (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y 5)) (+.f64 1 (expm1.f64 (*.f64 2 (*.f64 x (+.f64 y z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 2 (*.f64 x (+.f64 y z)) (*.f64 y 5))) 1)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 x z)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x x)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 (*.f64 x (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 2 (*.f64 x z)) 1) (*.f64 (*.f64 y (+.f64 x x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y z)) (+.f64 x x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y z)) (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y z)) (+.f64 x x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y z)) (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 2 (*.f64 x (+.f64 y z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 2 (*.f64 x z)) 3) (pow.f64 (*.f64 y (+.f64 x x)) 3)) (+.f64 (pow.f64 (*.f64 2 (*.f64 x z)) 2) (-.f64 (pow.f64 (*.f64 y (+.f64 x x)) 2) (*.f64 (*.f64 2 (*.f64 x z)) (*.f64 y (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 2 (*.f64 x z)) 2) (pow.f64 (*.f64 y (+.f64 x x)) 2)) (-.f64 (*.f64 2 (*.f64 x z)) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 z 3) (pow.f64 y 3)) (+.f64 x x)) (fma.f64 y (-.f64 y z) (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 z z) (*.f64 y y)) (+.f64 x x)) (-.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (+.f64 (pow.f64 z 3) (pow.f64 y 3))) (fma.f64 y (-.f64 y z) (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (-.f64 (*.f64 z z) (*.f64 y y))) (-.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x (+.f64 y z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (*.f64 x (+.f64 y z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 x x) 3) (pow.f64 (+.f64 y z) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 (+.f64 x x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 y z)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 2 (*.f64 x (+.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y (+.f64 x x))) (exp.f64 (*.f64 2 (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2 (*.f64 x (+.f64 y z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 x x) 3) (pow.f64 (+.f64 y z) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 (+.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2 (*.f64 x (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2 (*.f64 x (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2 (*.f64 x (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2 (*.f64 x (+.f64 y z)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (+.f64 x x) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 x y) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 x z) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2 y) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2 z) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x x) y (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x x) z (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x x) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2 (*.f64 x z)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y (+.f64 x x)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) (+.f64 x x)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x x)) 2) (*.f64 (cbrt.f64 (+.f64 x x)) y) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x x)) 2) (*.f64 (cbrt.f64 (+.f64 x x)) z) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x x)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (+.f64 x x)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x x)) (*.f64 (sqrt.f64 (+.f64 x x)) y) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x x)) (*.f64 (sqrt.f64 (+.f64 x x)) z) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x x)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (*.f64 x z)) 1 (*.f64 (*.f64 y (+.f64 x x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y (+.f64 x x))) 2) (cbrt.f64 (*.f64 y (+.f64 x x))) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 2 (*.f64 x z))) 2) (cbrt.f64 (*.f64 2 (*.f64 x z))) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y (+.f64 x x))) (sqrt.f64 (*.f64 y (+.f64 x x))) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2 (*.f64 x z))) (sqrt.f64 (*.f64 2 (*.f64 x z))) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (+.f64 x x)) (sqrt.f64 y)) (*.f64 (sqrt.f64 (+.f64 x x)) (sqrt.f64 y)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 y) (sqrt.f64 (+.f64 x x))) (*.f64 (sqrt.f64 y) (sqrt.f64 (+.f64 x x))) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (+.f64 x x)) (sqrt.f64 z)) (*.f64 (sqrt.f64 (+.f64 x x)) (sqrt.f64 z)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 x x))) (*.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 x x))) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y x) 2 (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z x) 2 (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x x) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x x) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 2) x (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (+.f64 x x)) 2)) (cbrt.f64 (+.f64 x x)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (+.f64 x x))) (sqrt.f64 (+.f64 x x)) (*.f64 2 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x x) (sqrt.f64 z)) (sqrt.f64 z) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z 2) x (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 (+.f64 x x)) 2)) (cbrt.f64 (+.f64 x x)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 (+.f64 x x))) (sqrt.f64 (+.f64 x x)) (*.f64 y (+.f64 x x))))))) |
| 1× | egg-herbie |
| 787× | fma-def_binary64 |
| 667× | fma-neg_binary64 |
| 186× | cancel-sign-sub-inv_binary64 |
| 126× | associate-*l*_binary64 |
| 118× | associate-*r*_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 876 |
| 1 | 79 | 789 |
| 2 | 170 | 789 |
| 3 | 293 | 789 |
| 4 | 457 | 789 |
| 5 | 742 | 789 |
| 6 | 1487 | 789 |
| 7 | 2555 | 789 |
| 8 | 2986 | 789 |
| 9 | 3097 | 789 |
| 10 | 3104 | 789 |
| 11 | 3104 | 789 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x))) |
(*.f64 5 y) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
| Outputs |
|---|
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 -1 (*.f64 y (-.f64 (*.f64 -2 x) 5))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 5 y) |
(*.f64 y 5) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 (+.f64 y z) x)) (*.f64 5 y)) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 5 y)) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x)))) |
(fma.f64 y (+.f64 5 (*.f64 2 x)) (*.f64 2 (*.f64 z x))) |
(fma.f64 2 (*.f64 x (+.f64 z y)) (*.f64 y 5)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 x y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 x y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 x y)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 x (+.f64 z y))) |
Compiled 15 to 10 computations (33.3% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 x (+.f64 (*.f64 2 y) t)) |
Compiled 23 to 14 computations (39.1% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | t | @ | inf | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 1.0ms | x | @ | 0 | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 1.0ms | x | @ | inf | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 1.0ms | x | @ | -inf | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 1.0ms | y | @ | inf | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 1× | batch-egg-rewrite |
| 950× | pow1_binary64 |
| 884× | add-log-exp_binary64 |
| 883× | log1p-expm1-u_binary64 |
| 883× | expm1-log1p-u_binary64 |
| 92× | add-sqr-sqrt_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 8 |
| 1 | 176 | 8 |
| 2 | 2433 | 8 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 x (+.f64 (*.f64 2 y) t)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 2 y)) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x t) (*.f64 x (*.f64 2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 2 y)) 1) (*.f64 (*.f64 x t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (fma.f64 2 y t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 2 y)) 3) (pow.f64 (*.f64 x t) 3)) (+.f64 (*.f64 (*.f64 x (*.f64 2 y)) (*.f64 x (*.f64 2 y))) (-.f64 (*.f64 (*.f64 x t) (*.f64 x t)) (*.f64 (*.f64 x (*.f64 2 y)) (*.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (*.f64 2 y)) (*.f64 x (*.f64 2 y))) (*.f64 (*.f64 x t) (*.f64 x t))) (-.f64 (*.f64 x (*.f64 2 y)) (*.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 8 (pow.f64 y 3)) (pow.f64 t 3)) x) (+.f64 (*.f64 4 (*.f64 y y)) (*.f64 t (-.f64 t (*.f64 2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 4 (*.f64 y y)) (*.f64 t t)) x) (-.f64 (*.f64 2 y) t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 8 (pow.f64 y 3)) (pow.f64 t 3))) (+.f64 (*.f64 4 (*.f64 y y)) (*.f64 t (-.f64 t (*.f64 2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 4 (*.f64 y y)) (*.f64 t t))) (-.f64 (*.f64 2 y) t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 2 y t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 2 y t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 2 y t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 2 y t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 2 y t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 2 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 2 y t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 2 y t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 2 y t) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 2 y t) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 2 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 2 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 2 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2 y) (*.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 y) x (*.f64 x t)))))) |
| 1× | egg-herbie |
| 11× | fma-def_binary64 |
| 6× | *-commutative_binary64 |
| 3× | associate-*r*_binary64 |
| 3× | associate-*l*_binary64 |
| 2× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 273 |
| 1 | 22 | 273 |
| 2 | 35 | 273 |
| 3 | 40 | 273 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 (+.f64 (*.f64 2 y) t) x) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 2 y) x) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 2 y) x) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 2 y) x) |
(*.f64 y (*.f64 2 x)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(*.f64 t x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 t x)) |
(*.f64 (fma.f64 2 y t) x) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 2 (*.f64 z x)) |
| ✓ | 0.0b | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
Compiled 29 to 16 computations (44.8% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| 1.0ms | x | @ | 0 | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| 1.0ms | z | @ | 0 | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| 1.0ms | y | @ | 0 | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| 1.0ms | x | @ | 0 | (*.f64 2 (*.f64 z x)) |
| 1× | batch-egg-rewrite |
| 515× | log-prod_binary64 |
| 388× | exp-prod_binary64 |
| 357× | prod-exp_binary64 |
| 352× | fma-def_binary64 |
| 320× | pow-prod-down_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 18 |
| 1 | 213 | 18 |
| 2 | 2717 | 18 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(*.f64 2 (*.f64 z x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (fma.f64 2 (*.f64 z x) (*.f64 -5 y))) (/.f64 (*.f64 25 (*.f64 y y)) (fma.f64 2 (*.f64 z x) (*.f64 -5 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) (pow.f64 (cbrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) 2) (cbrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) (sqrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 125 (pow.f64 y 3) (pow.f64 (*.f64 z (*.f64 x 2)) 3)) (/.f64 1 (fma.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 z (*.f64 x 2))) (pow.f64 (*.f64 z (*.f64 x 2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (*.f64 25 (*.f64 y y))) (/.f64 1 (fma.f64 2 (*.f64 z x) (*.f64 -5 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 z (*.f64 x 2))) (pow.f64 (*.f64 z (*.f64 x 2)) 2)) (fma.f64 125 (pow.f64 y 3) (pow.f64 (*.f64 z (*.f64 x 2)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 2 (*.f64 z x) (*.f64 -5 y)) (-.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (*.f64 25 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 125 (pow.f64 y 3) (pow.f64 (*.f64 z (*.f64 x 2)) 3)) (fma.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 z (*.f64 x 2))) (pow.f64 (*.f64 z (*.f64 x 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 125 (pow.f64 y 3) (pow.f64 (*.f64 z (*.f64 x 2)) 3)) (fma.f64 25 (*.f64 y y) (-.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (*.f64 (*.f64 z (*.f64 x 2)) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (*.f64 25 (*.f64 y y))) (fma.f64 2 (*.f64 z x) (*.f64 -5 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 125 (pow.f64 y 3) (pow.f64 (*.f64 z (*.f64 x 2)) 3))) (neg.f64 (fma.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 z (*.f64 x 2))) (pow.f64 (*.f64 z (*.f64 x 2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (*.f64 25 (*.f64 y y)))) (neg.f64 (fma.f64 2 (*.f64 z x) (*.f64 -5 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 25 (*.f64 y y)) (pow.f64 (*.f64 z (*.f64 x 2)) 2)) (-.f64 (*.f64 y 5) (*.f64 z (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 y 5) (-.f64 (*.f64 y 5) (*.f64 z (*.f64 x 2))) (pow.f64 (*.f64 z (*.f64 x 2)) 2)) (fma.f64 125 (pow.f64 y 3) (pow.f64 (*.f64 z (*.f64 x 2)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 2 (*.f64 z x) (*.f64 -5 y)) (-.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) (*.f64 25 (*.f64 y y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))) 2)) (cbrt.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))) (sqrt.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x 2)))) (pow.f64 (exp.f64 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 2) (*.f64 z x)) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x 2)))) (+.f64 1 (expm1.f64 (*.f64 y 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (pow.f64 (exp.f64 2) (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 5) y) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 5))) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 2 (*.f64 z x) (*.f64 y 5))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 z x) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 x 2) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2 z) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z x) 2 (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 x 2)) 1 (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 5 (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 5 y (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 5) 1 (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (*.f64 x 2)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y 5) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z x) 2)) (*.f64 (cbrt.f64 (*.f64 z x)) 2) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y 5)) (pow.f64 (cbrt.f64 (*.f64 y 5)) 2) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y 5)) 2) (cbrt.f64 (*.f64 y 5)) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (*.f64 x 2))) (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x 2))) 2) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (*.f64 x 2))) 2) (cbrt.f64 (*.f64 z (*.f64 x 2))) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) 5) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (*.f64 z x)) 2) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 5)) (sqrt.f64 (*.f64 y 5)) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (*.f64 x 2))) (sqrt.f64 (*.f64 z (*.f64 x 2))) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) 5) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 z) x (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 5 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 5 (sqrt.f64 y)) (sqrt.f64 y) (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 x) z (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (cbrt.f64 (pow.f64 (*.f64 z x) 2))) (cbrt.f64 (*.f64 z x)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sqrt.f64 (*.f64 z x))) (sqrt.f64 (*.f64 z x)) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 2 z) 1) x (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 2 z) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 y 5))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 2 z) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 y 5)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z x) (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 2) (*.f64 z x))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 2) (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 2) (*.f64 z x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 2) (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (*.f64 x 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (*.f64 x 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (*.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 z (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 z (*.f64 x 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 z (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 z (*.f64 x 2))))) (sqrt.f64 (log.f64 (*.f64 z (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 2) (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 x 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z (*.f64 x 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 z (*.f64 x 2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 z (*.f64 x 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 z (*.f64 x 2)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 z (*.f64 x 2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 z (*.f64 x 2))) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (log.f64 (*.f64 2 z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 2 z)) (*.f64 (log.f64 x) 1))))))) |
| 1× | egg-herbie |
| 8× | fma-def_binary64 |
| 6× | *-commutative_binary64 |
| 3× | associate-*r*_binary64 |
| 3× | associate-*l*_binary64 |
| 1× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 348 |
| 1 | 17 | 348 |
| 2 | 28 | 348 |
| 3 | 34 | 348 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
| Outputs |
|---|
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 x (*.f64 2 z)) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(*.f64 5 y) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
(+.f64 (*.f64 5 y) (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 2 (*.f64 z x))) |
(fma.f64 5 y (*.f64 x (*.f64 2 z))) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0b | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
Compiled 45 to 31 computations (31.1% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| 1× | batch-egg-rewrite |
| 594× | log-prod_binary64 |
| 452× | fma-def_binary64 |
| 413× | pow-prod-down_binary64 |
| 318× | pow2_binary64 |
| 246× | fma-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 15 |
| 1 | 267 | 15 |
| 2 | 3276 | 15 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))) (/.f64 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2) (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) (pow.f64 (cbrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) 2) (cbrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) (sqrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 (*.f64 z x) 3) 8 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 3)) (/.f64 1 (fma.f64 (*.f64 (fma.f64 x 2 5) y) (fma.f64 (fma.f64 x 2 5) y (neg.f64 (*.f64 z (+.f64 x x)))) (pow.f64 (*.f64 z (+.f64 x x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2)) (/.f64 1 (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (fma.f64 x 2 5) y) (fma.f64 (fma.f64 x 2 5) y (neg.f64 (*.f64 z (+.f64 x x)))) (pow.f64 (*.f64 z (+.f64 x x)) 2)) (fma.f64 (pow.f64 (*.f64 z x) 3) 8 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y)) (-.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 z x) 3) 8 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 3)) (fma.f64 (*.f64 (fma.f64 x 2 5) y) (fma.f64 (fma.f64 x 2 5) y (neg.f64 (*.f64 z (+.f64 x x)))) (pow.f64 (*.f64 z (+.f64 x x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (*.f64 z x) 3) 8 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 3)) (+.f64 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2) (-.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (*.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2)) (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 z x) 3) 8 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 3))) (neg.f64 (fma.f64 (*.f64 (fma.f64 x 2 5) y) (fma.f64 (fma.f64 x 2 5) y (neg.f64 (*.f64 z (+.f64 x x)))) (pow.f64 (*.f64 z (+.f64 x x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2))) (neg.f64 (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2) (pow.f64 (*.f64 z (+.f64 x x)) 2)) (fma.f64 (fma.f64 x 2 5) y (neg.f64 (*.f64 z (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (fma.f64 x 2 5) y) (fma.f64 (fma.f64 x 2 5) y (neg.f64 (*.f64 z (+.f64 x x)))) (pow.f64 (*.f64 z (+.f64 x x)) 2)) (fma.f64 (pow.f64 (*.f64 z x) 3) 8 (pow.f64 (*.f64 (fma.f64 x 2 5) y) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y)) (-.f64 (pow.f64 (*.f64 z (+.f64 x x)) 2) (pow.f64 (*.f64 (fma.f64 x 2 5) y) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x x)))) (pow.f64 (exp.f64 y) (fma.f64 x 2 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x) 2) z) (+.f64 1 (expm1.f64 (*.f64 (fma.f64 x 2 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x x)))) (+.f64 1 (expm1.f64 (*.f64 (fma.f64 x 2 5) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 x 2 5) y))) (pow.f64 (pow.f64 (exp.f64 x) 2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) (fma.f64 x 2 5)) (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 x 2 5) y))) (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x x) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 2 z) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 z x) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (+.f64 x x)) 1 (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x x) z (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x 2 5) y (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (fma.f64 x 2 5) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 x 2 5) y) 1 (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (fma.f64 x 2 5) y) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (fma.f64 x 2 5) y)) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x 2 5) y)) 2) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x 2 5) y)) 2) (cbrt.f64 (*.f64 (fma.f64 x 2 5) y)) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x 2 5)) 2) (*.f64 (cbrt.f64 (fma.f64 x 2 5)) y) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (+.f64 x x))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x x))) 2) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x x))) 2) (cbrt.f64 (*.f64 z (+.f64 x x))) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (fma.f64 x 2 5)) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 x x)) 2) (*.f64 (cbrt.f64 (+.f64 x x)) z) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (fma.f64 x 2 5) y)) (sqrt.f64 (*.f64 (fma.f64 x 2 5) y)) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x 2 5)) (*.f64 (sqrt.f64 (fma.f64 x 2 5)) y) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (+.f64 x x))) (sqrt.f64 (*.f64 z (+.f64 x x))) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (fma.f64 x 2 5)) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x x)) (*.f64 (sqrt.f64 (+.f64 x x)) z) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z x) 2 (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 x 2 5) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 x 2 5) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (fma.f64 x 2 5)) 2)) (cbrt.f64 (fma.f64 x 2 5)) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (fma.f64 x 2 5))) (sqrt.f64 (fma.f64 x 2 5)) (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z 2) x (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 (+.f64 x x)) 2)) (cbrt.f64 (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 (+.f64 x x))) (sqrt.f64 (+.f64 x x)) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (fma.f64 x 2 5) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x x) (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (fma.f64 x 2 5) y)))))) |
| 1× | egg-herbie |
| 967× | fma-def_binary64 |
| 628× | fma-neg_binary64 |
| 257× | cancel-sign-sub-inv_binary64 |
| 91× | sub-neg_binary64 |
| 81× | distribute-rgt-in_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 29 | 474 |
| 1 | 68 | 447 |
| 2 | 157 | 447 |
| 3 | 378 | 447 |
| 4 | 600 | 447 |
| 5 | 932 | 447 |
| 6 | 1364 | 447 |
| 7 | 2122 | 447 |
| 8 | 2893 | 447 |
| 9 | 3242 | 447 |
| 10 | 3257 | 447 |
| 11 | 3257 | 447 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 5 y) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x)) |
(+.f64 (*.f64 5 y) (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x))) |
(+.f64 (*.f64 5 y) (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x))) |
(+.f64 (*.f64 5 y) (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x))) |
(*.f64 2 (*.f64 z x)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| Outputs |
|---|
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 5 y) |
(*.f64 y 5) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) |
(*.f64 x (*.f64 2 (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) (*.f64 2 y)) x) (*.f64 5 y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x)) |
(*.f64 x (*.f64 2 (+.f64 z y))) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 2 (*.f64 x (+.f64 y z))) |
(+.f64 (*.f64 5 y) (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 5 y) (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 5 y) (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 y) (*.f64 -2 z)) x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 2 (*.f64 z x)) |
(*.f64 2 (*.f64 x z)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 y (+.f64 5 (*.f64 2 x))) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 y (+.f64 5 (*.f64 2 x))) (*.f64 2 (*.f64 z x))) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 y (fma.f64 2 x 5)) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(fma.f64 y (fma.f64 2 x 5) (*.f64 2 (*.f64 x z))) |
(fma.f64 y 5 (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 y 5 (*.f64 2 (*.f64 x (+.f64 y z)))) |
Compiled 5819 to 3240 computations (44.3% saved)
17 alts after pruning (7 fresh and 10 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 370 | 1 | 371 |
| Fresh | 0 | 6 | 6 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 9 | 10 |
| Total | 371 | 17 | 388 |
| Status | Error | Program |
|---|---|---|
| ✓ | 18.0b | (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| ✓ | 41.1b | (*.f64 2 (*.f64 (+.f64 y z) x)) |
| ✓ | 44.8b | (*.f64 t x) |
| 29.0b | (*.f64 (+.f64 (*.f64 2 z) t) x) | |
| ✓ | 24.0b | (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| ✓ | 39.2b | (*.f64 x (+.f64 (*.f64 2 y) t)) |
| 22.5b | (fma.f64 x t (*.f64 y 5)) | |
| 24.0b | (fma.f64 y 5 (*.f64 z (*.f64 x 2))) | |
| 29.0b | (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) | |
| ✓ | 34.2b | (*.f64 (+.f64 (*.f64 2 x) 5) y) |
| 46.7b | (*.f64 z (*.f64 x 2)) | |
| ✓ | 34.2b | (fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
| ✓ | 22.5b | (+.f64 (*.f64 t x) (*.f64 y 5)) |
| 23.2b | (fma.f64 x t (*.f64 x (*.f64 2 (+.f64 y z)))) | |
| 22.5b | (fma.f64 y 5 (*.f64 t x)) | |
| ✓ | 56.8b | (*.f64 y (*.f64 x 2)) |
| ✓ | 39.9b | (*.f64 y 5) |
Compiled 188 to 139 computations (26.1% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 t x)) |
(fma.f64 x t (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 z (*.f64 x 2))) |
(fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 2 y) t))) |
(fma.f64 x t (*.f64 x (*.f64 2 (+.f64 y z)))) |
(fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
(fma.f64 5 y (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 (+.f64 (*.f64 (+.f64 y z) 2) t) x (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
(fma.f64 x (fma.f64 (+.f64 y z) 2 t) (*.f64 y 5)) |
| Outputs |
|---|
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
5 calls:
| 22.0ms | t |
| 19.0ms | y |
| 18.0ms | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
| 17.0ms | x |
| 17.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
| 0.0b | 1 | t |
| 0.0b | 1 | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
Compiled 314 to 178 computations (43.3% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
(+.f64 (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 t x)) |
(fma.f64 x t (*.f64 y 5)) |
(fma.f64 y 5 (*.f64 z (*.f64 x 2))) |
(fma.f64 y 5 (*.f64 2 (*.f64 y x))) |
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 2 y) t))) |
(fma.f64 x t (*.f64 x (*.f64 2 (+.f64 y z)))) |
(fma.f64 y 5 (*.f64 (*.f64 2 x) (+.f64 z y))) |
(fma.f64 5 y (*.f64 2 (*.f64 (+.f64 y z) x))) |
(fma.f64 (+.f64 (*.f64 (+.f64 y z) 2) t) x (*.f64 y 5)) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
5 calls:
| 39.0ms | z |
| 36.0ms | t |
| 22.0ms | y |
| 19.0ms | x |
| 19.0ms | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
| Error | Segments | Branch |
|---|---|---|
| 0.1b | 1 | x |
| 0.1b | 1 | y |
| 0.1b | 1 | z |
| 0.1b | 1 | t |
| 0.1b | 1 | (+.f64 (*.f64 x (+.f64 (+.f64 (+.f64 (+.f64 y z) z) y) t)) (*.f64 y 5)) |
Compiled 291 to 167 computations (42.6% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
| Outputs |
|---|
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
4 calls:
| 47.0ms | x |
| 39.0ms | y |
| 38.0ms | z |
| 32.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 6.8b | 5 | x |
| 7.5b | 4 | y |
| 8.3b | 4 | z |
| 6.9b | 3 | t |
Compiled 147 to 89 computations (39.5% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 23.0ms | 0.00037907154916533525 | 0.07297806736915245 |
| 25.0ms | 5.319790113995197e-104 | 4.606882278027329e-100 |
| 24.0ms | 2.3344253483317512e-126 | 2.112528506255057e-125 |
| 24.0ms | -8.715254566785824e-119 | -3.898276757502309e-124 |
Compiled 26 to 18 computations (30.8% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
| Outputs |
|---|
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
4 calls:
| 84.0ms | x |
| 69.0ms | y |
| 60.0ms | z |
| 55.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 6.9b | 5 | x |
| 9.2b | 5 | y |
| 9.2b | 6 | z |
| 11.4b | 6 | t |
Compiled 134 to 80 computations (40.3% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 39.0ms | 1.192279306485456e-45 | 2.0367016358251574e-38 |
| 38.0ms | 5.319790113995197e-104 | 4.606882278027329e-100 |
| 40.0ms | 2.3344253483317512e-126 | 2.112528506255057e-125 |
| 42.0ms | -8.715254566785824e-119 | -3.898276757502309e-124 |
Compiled 26 to 18 computations (30.8% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
| Outputs |
|---|
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) |
4 calls:
| 123.0ms | t |
| 44.0ms | y |
| 35.0ms | x |
| 25.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 8.8b | 3 | x |
| 9.2b | 5 | y |
| 13.1b | 3 | z |
| 12.8b | 11 | t |
Compiled 125 to 75 computations (40% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 22.0ms | 1.9553227416084183e-75 | 9.299365391601453e-70 |
| 25.0ms | -1.790296397342562e-96 | -4.507557811835849e-103 |
Compiled 26 to 18 computations (30.8% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
4 calls:
| 69.0ms | t |
| 61.0ms | x |
| 40.0ms | y |
| 38.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 11.2b | 6 | x |
| 10.2b | 5 | y |
| 14.2b | 5 | z |
| 16.2b | 8 | t |
Compiled 116 to 71 computations (38.8% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 42.0ms | 602641152.3689288 | 21525587252.787937 |
| 36.0ms | -2.733933434286533e-148 | -1.0624771701572843e-156 |
| 32.0ms | -8.083104498388488e+96 | -6.014912440387131e+96 |
| 23.0ms | -2.9079384283436724e+128 | -2.708105179869382e+120 |
Compiled 26 to 18 computations (30.8% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 (+.f64 (*.f64 2 x) 5) y) |
4 calls:
| 114.0ms | t |
| 101.0ms | x |
| 65.0ms | z |
| 63.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 11.2b | 6 | x |
| 10.2b | 5 | y |
| 14.2b | 5 | z |
| 16.2b | 8 | t |
Compiled 107 to 68 computations (36.4% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 43.0ms | 602641152.3689288 | 21525587252.787937 |
| 35.0ms | -2.733933434286533e-148 | -1.0624771701572843e-156 |
| 39.0ms | -8.083104498388488e+96 | -6.014912440387131e+96 |
| 36.0ms | -2.9079384283436724e+128 | -2.708105179869382e+120 |
Compiled 26 to 18 computations (30.8% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
| Outputs |
|---|
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(+.f64 (*.f64 t x) (*.f64 y 5)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
4 calls:
| 104.0ms | t |
| 80.0ms | x |
| 59.0ms | z |
| 36.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 11.2b | 6 | x |
| 13.7b | 3 | y |
| 14.2b | 5 | z |
| 16.1b | 9 | t |
Compiled 93 to 59 computations (36.6% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 35.0ms | 5749.860309125221 | 48912222712.19153 |
| 36.0ms | 1.9553227416084183e-75 | 9.299365391601453e-70 |
| 36.0ms | -1.790296397342562e-96 | -4.507557811835849e-103 |
| 70.0ms | -1.3714171197578802e+85 | -7.310160972970031e+83 |
| 44.0ms | -6.1444481826889184e+144 | -2.1108220934832694e+141 |
Compiled 386 to 288 computations (25.4% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
| Outputs |
|---|
(*.f64 x (+.f64 (*.f64 2 y) t)) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y 5) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y 5) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 x (+.f64 (*.f64 2 y) t)) |
4 calls:
| 202.0ms | t |
| 122.0ms | z |
| 122.0ms | x |
| 71.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 13.9b | 8 | x |
| 16.5b | 5 | y |
| 21.8b | 6 | z |
| 20.1b | 12 | t |
Compiled 86 to 56 computations (34.9% saved)
| 7× | binary-search |
| Time | Left | Right |
|---|---|---|
| 41.0ms | 5749.860309125221 | 48912222712.19153 |
| 39.0ms | 1.9553227416084183e-75 | 9.299365391601453e-70 |
| 63.0ms | 1.92351541277789e-94 | 1.2055969885670966e-93 |
| 38.0ms | 1.991804369666201e-144 | 1.0498434305975978e-140 |
| 63.0ms | -3.898276757502309e-124 | -3.204605486921345e-129 |
| 101.0ms | -1.3714171197578802e+85 | -7.310160972970031e+83 |
| 59.0ms | -6.1444481826889184e+144 | -2.1108220934832694e+141 |
Compiled 386 to 288 computations (25.4% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y 5) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y 5) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 2 (*.f64 (+.f64 y z) x)) |
4 calls:
| 118.0ms | t |
| 57.0ms | x |
| 51.0ms | y |
| 49.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 15.8b | 6 | x |
| 16.5b | 5 | y |
| 24.0b | 5 | z |
| 20.2b | 12 | t |
Compiled 72 to 48 computations (33.3% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 21.0ms | 6.612439421816316e+143 | 5.810036959402334e+144 |
| 23.0ms | 1.9553227416084183e-75 | 9.299365391601453e-70 |
| 30.0ms | 1.92351541277789e-94 | 1.2055969885670966e-93 |
| 37.0ms | 1.991804369666201e-144 | 1.0498434305975978e-140 |
| 37.0ms | -3.898276757502309e-124 | -3.204605486921345e-129 |
Compiled 170 to 126 computations (25.9% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y 5) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y 5) |
(*.f64 (+.f64 (*.f64 2 z) t) x) |
(*.f64 y (*.f64 x 2)) |
4 calls:
| 58.0ms | t |
| 31.0ms | x |
| 27.0ms | z |
| 26.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 16.0b | 6 | x |
| 16.7b | 5 | y |
| 24.0b | 5 | z |
| 22.2b | 11 | t |
Compiled 65 to 44 computations (32.3% saved)
| 5× | binary-search |
| Time | Left | Right |
|---|---|---|
| 28.0ms | 5.810036959402334e+144 | 4.3532522249759113e+145 |
| 22.0ms | 1.9553227416084183e-75 | 9.299365391601453e-70 |
| 30.0ms | 1.92351541277789e-94 | 1.2055969885670966e-93 |
| 23.0ms | 1.991804369666201e-144 | 1.0498434305975978e-140 |
| 23.0ms | -3.898276757502309e-124 | -3.204605486921345e-129 |
Compiled 158 to 120 computations (24.1% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 x (*.f64 2 z)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 2 (*.f64 z x)) |
| Outputs |
|---|
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 t x) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 y 5) |
(*.f64 z (*.f64 x 2)) |
(*.f64 y (*.f64 x 2)) |
(*.f64 t x) |
(*.f64 y (*.f64 x 2)) |
4 calls:
| 91.0ms | x |
| 58.0ms | t |
| 57.0ms | y |
| 50.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 24.0b | 10 | x |
| 28.4b | 7 | y |
| 28.6b | 6 | z |
| 29.4b | 7 | t |
Compiled 58 to 40 computations (31% saved)
| 9× | binary-search |
| Time | Left | Right |
|---|---|---|
| 35.0ms | 6.612439421816316e+143 | 5.810036959402334e+144 |
| 83.0ms | 1.036453699001299e+59 | 2.3633384481963158e+61 |
| 140.0ms | 5749.860309125221 | 48912222712.19153 |
| 63.0ms | 1.9553227416084183e-75 | 9.299365391601453e-70 |
| 37.0ms | 1.92351541277789e-94 | 1.2055969885670966e-93 |
| 40.0ms | 2.112528506255057e-125 | 6.5143028556844765e-124 |
| 140.0ms | -3.898276757502309e-124 | -3.204605486921345e-129 |
| 68.0ms | -1.0553992558608906e-71 | -7.552313722634363e-72 |
| 50.0ms | -2.1108220934832694e+141 | -2.1833717918802033e+135 |
Compiled 422 to 326 computations (22.7% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
| Outputs |
|---|
(*.f64 t x) |
(*.f64 z (*.f64 x 2)) |
(*.f64 t x) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 y 5) |
(*.f64 t x) |
4 calls:
| 167.0ms | y |
| 97.0ms | t |
| 75.0ms | x |
| 37.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 26.8b | 7 | x |
| 28.4b | 7 | y |
| 28.6b | 6 | z |
| 29.4b | 7 | t |
Compiled 38 to 28 computations (26.3% saved)
| 6× | binary-search |
| Time | Left | Right |
|---|---|---|
| 36.0ms | 1.192279306485456e-45 | 2.0367016358251574e-38 |
| 64.0ms | 1.92351541277789e-94 | 1.2055969885670966e-93 |
| 38.0ms | 2.112528506255057e-125 | 6.5143028556844765e-124 |
| 41.0ms | -3.898276757502309e-124 | -3.204605486921345e-129 |
| 38.0ms | -1.0553992558608906e-71 | -7.552313722634363e-72 |
| 145.0ms | -2.1108220934832694e+141 | -2.1833717918802033e+135 |
Compiled 188 to 144 computations (23.4% saved)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
(*.f64 t x) |
| Outputs |
|---|
(*.f64 t x) |
(*.f64 y 5) |
(*.f64 t x) |
(*.f64 y 5) |
(*.f64 t x) |
4 calls:
| 123.0ms | x |
| 34.0ms | y |
| 33.0ms | t |
| 29.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 28.7b | 5 | x |
| 30.8b | 3 | y |
| 35.2b | 5 | z |
| 31.9b | 3 | t |
Compiled 33 to 25 computations (24.2% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 38.0ms | 1.192279306485456e-45 | 2.0367016358251574e-38 |
| 63.0ms | 1.92351541277789e-94 | 1.2055969885670966e-93 |
| 42.0ms | 2.112528506255057e-125 | 6.5143028556844765e-124 |
| 37.0ms | -3.898276757502309e-124 | -3.204605486921345e-129 |
Compiled 26 to 18 computations (30.8% saved)
Total -0.0b remaining (-0%)
Threshold costs -0.0b (-0%)
| Inputs |
|---|
(*.f64 y 5) |
(*.f64 y 5) |
| Outputs |
|---|
(*.f64 y 5) |
4 calls:
| 7.0ms | y |
| 5.0ms | z |
| 5.0ms | x |
| 5.0ms | t |
| Error | Segments | Branch |
|---|---|---|
| 39.9b | 1 | x |
| 39.9b | 1 | y |
| 39.9b | 1 | z |
| 39.9b | 1 | t |
Compiled 30 to 24 computations (20% saved)
| 1× | egg-herbie |
| 18× | *-commutative_binary64 |
| 11× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 144 | 990 |
| 1 | 173 | 990 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
(+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
(if (<=.f64 x -1979557659760647/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) (if (<=.f64 x 3558344212390405/1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712) (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) (if (<=.f64 x 1073205263540003/20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 x 6992635853077547/18446744073709551616) (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x))))) |
(if (<=.f64 x -1979557659760647/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) (if (<=.f64 x 3558344212390405/1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712) (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) (if (<=.f64 x 1073205263540003/20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x))))) |
(if (<=.f64 x -8610994841488567/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (+.f64 (*.f64 t x) (*.f64 y 5)) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x))) |
(if (<=.f64 y -290793842834367239394979566494838998404956017001029595333668610009464506740886013878843191788582109458668154839744095516551544832) (*.f64 (+.f64 (*.f64 2 x) 5) y) (if (<=.f64 y -8083104498388488159341045150700096886901454900261509474105222831705436396041606020227477811494912) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 y -7871827738159705/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 y 5055320391891215/8388608) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) (*.f64 (+.f64 (*.f64 2 x) 5) y))))) |
(if (<=.f64 y -290793842834367239394979566494838998404956017001029595333668610009464506740886013878843191788582109458668154839744095516551544832) (*.f64 (+.f64 (*.f64 2 x) 5) y) (if (<=.f64 y -8083104498388488159341045150700096886901454900261509474105222831705436396041606020227477811494912) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 y -7871827738159705/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 y 5055320391891215/8388608) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y))))) |
(if (<=.f64 x -2149999999999999926499158155516396498304539866529078462759252980243000260778956820599140339083740547379243559428361139719210033408462597128192) (*.f64 x (+.f64 (*.f64 2 y) t)) (if (<=.f64 x -13499999999999999162252433595526217802882200994619025432594899801234267643011867344896) (*.f64 2 (*.f64 (+.f64 y z) x)) (if (<=.f64 x -8610994841488567/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 x (+.f64 (*.f64 2 y) t))))))) |
(if (<=.f64 x -2149999999999999926499158155516396498304539866529078462759252980243000260778956820599140339083740547379243559428361139719210033408462597128192) (*.f64 x (+.f64 (*.f64 2 y) t)) (if (<=.f64 x -13499999999999999162252433595526217802882200994619025432594899801234267643011867344896) (*.f64 2 (*.f64 (+.f64 y z) x)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 x (+.f64 (*.f64 2 y) t))))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 679999999999999964159337239117473025942621438240684448048761028999200667642081852822211265831456208008435144558394189605454315429208283676672000) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 2 (*.f64 (+.f64 y z) x))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 5899999999999999880160267092215128523234752010775127708927467616671596912065460695531500399697489275365540645626571238216755110070766622316953600) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 y (*.f64 x 2))))))) |
(if (<=.f64 x -2099999999999999849496699588967809913836844122475199337545503451002003911984054759539680072362860752673476094061602545314879438024089175851008) (*.f64 t x) (if (<=.f64 x -2624372868146093/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x 2)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 t x) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 t x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 z (*.f64 x 2)) (if (<=.f64 x 22999999999999999549527958185682374469306819978055999872303104) (*.f64 y (*.f64 x 2)) (if (<=.f64 x 5799999999999999964431651797625482349319329472463625222568779723298841143188745532481598505801681665951806239467549042152651111297639233815052288) (*.f64 t x) (*.f64 y (*.f64 x 2))))))))))) |
(if (<=.f64 x -2099999999999999849496699588967809913836844122475199337545503451002003911984054759539680072362860752673476094061602545314879438024089175851008) (*.f64 t x) (if (<=.f64 x -2624372868146093/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x 2)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 t x) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 t x) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (*.f64 y 5) (*.f64 t x))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 t x) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 t x) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (*.f64 y 5) (*.f64 t x))))) |
(*.f64 y 5) |
| Outputs |
|---|
(fma.f64 y 5 (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t))) |
(+.f64 (+.f64 (*.f64 x (*.f64 (+.f64 y z) 2)) (*.f64 x t)) (*.f64 y 5)) |
(if (<=.f64 x -1979557659760647/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) (if (<=.f64 x 3558344212390405/1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712) (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) (if (<=.f64 x 1073205263540003/20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 x 6992635853077547/18446744073709551616) (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 (+.f64 (*.f64 2 x) 5) y)) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x))))) |
(if (<=.f64 x -1979557659760647/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) (if (<=.f64 x 3558344212390405/1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712) (+.f64 (*.f64 y 5) (*.f64 2 (*.f64 x z))) (if (<=.f64 x 1073205263540003/20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792) (+.f64 (*.f64 y 5) (*.f64 x t)) (if (<=.f64 x 6992635853077547/18446744073709551616) (+.f64 (*.f64 z (*.f64 x 2)) (*.f64 y (+.f64 5 (*.f64 x 2)))) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) |
(if (<=.f64 x -1979557659760647/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) (if (<=.f64 x 3558344212390405/1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712) (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) (if (<=.f64 x 1073205263540003/20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (+.f64 (*.f64 2 (*.f64 z x)) (*.f64 y 5)) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x))))) |
(if (<=.f64 x -1979557659760647/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) (if (<=.f64 x 3558344212390405/1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712) (+.f64 (*.f64 y 5) (*.f64 2 (*.f64 x z))) (if (<=.f64 x 1073205263540003/20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792) (+.f64 (*.f64 y 5) (*.f64 x t)) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (+.f64 (*.f64 y 5) (*.f64 2 (*.f64 x z))) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))))) |
(if (<=.f64 x -8610994841488567/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (+.f64 (*.f64 t x) (*.f64 y 5)) (*.f64 (+.f64 t (*.f64 2 (+.f64 y z))) x))) |
(if (<=.f64 x -8610994841488567/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (+.f64 (*.f64 y 5) (*.f64 x t)) (*.f64 x (+.f64 (*.f64 (+.f64 y z) 2) t)))) |
(if (<=.f64 y -290793842834367239394979566494838998404956017001029595333668610009464506740886013878843191788582109458668154839744095516551544832) (*.f64 (+.f64 (*.f64 2 x) 5) y) (if (<=.f64 y -8083104498388488159341045150700096886901454900261509474105222831705436396041606020227477811494912) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 y -7871827738159705/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 y 5055320391891215/8388608) (+.f64 (*.f64 t x) (*.f64 2 (*.f64 z x))) (*.f64 (+.f64 (*.f64 2 x) 5) y))))) |
(if (<=.f64 y -290793842834367239394979566494838998404956017001029595333668610009464506740886013878843191788582109458668154839744095516551544832) (*.f64 y (+.f64 5 (*.f64 x 2))) (if (<=.f64 y -8083104498388488159341045150700096886901454900261509474105222831705436396041606020227477811494912) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 y -7871827738159705/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (+.f64 (*.f64 y 5) (*.f64 x t)) (if (<=.f64 y 5055320391891215/8388608) (+.f64 (*.f64 2 (*.f64 x z)) (*.f64 x t)) (*.f64 y (+.f64 5 (*.f64 x 2))))))) |
(if (<=.f64 y -290793842834367239394979566494838998404956017001029595333668610009464506740886013878843191788582109458668154839744095516551544832) (*.f64 (+.f64 (*.f64 2 x) 5) y) (if (<=.f64 y -8083104498388488159341045150700096886901454900261509474105222831705436396041606020227477811494912) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 y -7871827738159705/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 y 5055320391891215/8388608) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 (+.f64 (*.f64 2 x) 5) y))))) |
(if (<=.f64 y -290793842834367239394979566494838998404956017001029595333668610009464506740886013878843191788582109458668154839744095516551544832) (*.f64 y (+.f64 5 (*.f64 x 2))) (if (<=.f64 y -8083104498388488159341045150700096886901454900261509474105222831705436396041606020227477811494912) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 y -7871827738159705/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (+.f64 (*.f64 y 5) (*.f64 x t)) (if (<=.f64 y 5055320391891215/8388608) (*.f64 x (+.f64 t (*.f64 z 2))) (*.f64 y (+.f64 5 (*.f64 x 2))))))) |
(if (<=.f64 x -2149999999999999926499158155516396498304539866529078462759252980243000260778956820599140339083740547379243559428361139719210033408462597128192) (*.f64 x (+.f64 (*.f64 2 y) t)) (if (<=.f64 x -13499999999999999162252433595526217802882200994619025432594899801234267643011867344896) (*.f64 2 (*.f64 (+.f64 y z) x)) (if (<=.f64 x -8610994841488567/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (+.f64 (*.f64 t x) (*.f64 y 5)) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 x (+.f64 (*.f64 2 y) t))))))) |
(if (<=.f64 x -2149999999999999926499158155516396498304539866529078462759252980243000260778956820599140339083740547379243559428361139719210033408462597128192) (*.f64 x (+.f64 t (*.f64 y 2))) (if (<=.f64 x -13499999999999999162252433595526217802882200994619025432594899801234267643011867344896) (*.f64 2 (*.f64 x (+.f64 y z))) (if (<=.f64 x -8610994841488567/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (+.f64 (*.f64 y 5) (*.f64 x t)) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 x (+.f64 t (*.f64 z 2))) (*.f64 x (+.f64 t (*.f64 y 2)))))))) |
(if (<=.f64 x -2149999999999999926499158155516396498304539866529078462759252980243000260778956820599140339083740547379243559428361139719210033408462597128192) (*.f64 x (+.f64 (*.f64 2 y) t)) (if (<=.f64 x -13499999999999999162252433595526217802882200994619025432594899801234267643011867344896) (*.f64 2 (*.f64 (+.f64 y z) x)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 x (+.f64 (*.f64 2 y) t))))))))) |
(if (<=.f64 x -2149999999999999926499158155516396498304539866529078462759252980243000260778956820599140339083740547379243559428361139719210033408462597128192) (*.f64 x (+.f64 t (*.f64 y 2))) (if (<=.f64 x -13499999999999999162252433595526217802882200994619025432594899801234267643011867344896) (*.f64 2 (*.f64 x (+.f64 y z))) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 x (+.f64 t (*.f64 z 2))) (*.f64 x (+.f64 t (*.f64 y 2)))))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 679999999999999964159337239117473025942621438240684448048761028999200667642081852822211265831456208008435144558394189605454315429208283676672000) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 2 (*.f64 (+.f64 y z) x))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 679999999999999964159337239117473025942621438240684448048761028999200667642081852822211265831456208008435144558394189605454315429208283676672000) (*.f64 x (+.f64 t (*.f64 z 2))) (*.f64 2 (*.f64 x (+.f64 y z)))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 (+.f64 (*.f64 2 z) t) x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 5899999999999999880160267092215128523234752010775127708927467616671596912065460695531500399697489275365540645626571238216755110070766622316953600) (*.f64 (+.f64 (*.f64 2 z) t) x) (*.f64 y (*.f64 x 2))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 1750186748969275/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 x (+.f64 t (*.f64 z 2))) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 5899999999999999880160267092215128523234752010775127708927467616671596912065460695531500399697489275365540645626571238216755110070766622316953600) (*.f64 x (+.f64 t (*.f64 z 2))) (*.f64 y (*.f64 x 2))))))) |
(if (<=.f64 x -2099999999999999849496699588967809913836844122475199337545503451002003911984054759539680072362860752673476094061602545314879438024089175851008) (*.f64 t x) (if (<=.f64 x -2624372868146093/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x 2)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 t x) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 t x) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 z (*.f64 x 2)) (if (<=.f64 x 22999999999999999549527958185682374469306819978055999872303104) (*.f64 y (*.f64 x 2)) (if (<=.f64 x 5799999999999999964431651797625482349319329472463625222568779723298841143188745532481598505801681665951806239467549042152651111297639233815052288) (*.f64 t x) (*.f64 y (*.f64 x 2))))))))))) |
(if (<=.f64 x -2099999999999999849496699588967809913836844122475199337545503451002003911984054759539680072362860752673476094061602545314879438024089175851008) (*.f64 x t) (if (<=.f64 x -2624372868146093/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x 2)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 x t) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 x t) (if (<=.f64 x 7966125540002657/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y 5) (if (<=.f64 x 3161019133985443/549755813888) (*.f64 z (*.f64 x 2)) (if (<=.f64 x 22999999999999999549527958185682374469306819978055999872303104) (*.f64 y (*.f64 x 2)) (if (<=.f64 x 5799999999999999964431651797625482349319329472463625222568779723298841143188745532481598505801681665951806239467549042152651111297639233815052288) (*.f64 x t) (*.f64 y (*.f64 x 2))))))))))) |
(if (<=.f64 x -2099999999999999849496699588967809913836844122475199337545503451002003911984054759539680072362860752673476094061602545314879438024089175851008) (*.f64 t x) (if (<=.f64 x -2624372868146093/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x 2)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 t x) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 t x) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (*.f64 y 5) (*.f64 t x))))))) |
(if (<=.f64 x -2099999999999999849496699588967809913836844122475199337545503451002003911984054759539680072362860752673476094061602545314879438024089175851008) (*.f64 x t) (if (<=.f64 x -2624372868146093/248661618204893321077691124073410420050228075398673858720231988446579748506266687766528) (*.f64 z (*.f64 x 2)) (if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 x t) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 x t) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (*.f64 y 5) (*.f64 x t))))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 t x) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 t x) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (*.f64 y 5) (*.f64 t x))))) |
(if (<=.f64 x -2321136439602539/5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952) (*.f64 x t) (if (<=.f64 x 4025135987489583/190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464) (*.f64 y 5) (if (<=.f64 x 7227932568849059/37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616) (*.f64 x t) (if (<=.f64 x 478979744243551/401734511064747568885490523085290650630550748445698208825344) (*.f64 y 5) (*.f64 x t))))) |
(*.f64 y 5) |
Compiled 745 to 485 computations (34.9% saved)
Compiled 689 to 409 computations (40.6% saved)
Loading profile data...