Time bar (total: 4.9s)
| 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 |
| 11.8% | 10.9% | 81.9% | 0.2% | 7% | 0% | 0% | 11 |
| 17.1% | 15.6% | 75.4% | 0.2% | 8.8% | 0% | 0% | 12 |
Compiled 14 to 9 computations (35.7% saved)
| 825.0ms | 8256× | body | 256 | valid |
| 237.0ms | 2304× | body | 256 | infinite |
| 2× | egg-herbie |
| 28× | rational.json-simplify-1 |
| 24× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 33 | 175 |
| 1 | 60 | 175 |
| 0 | 4 | 4 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
1 |
2 |
3 |
| Outputs |
|---|
0 |
1 |
2 |
3 |
| Inputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) x) t) |
(+.f64 (*.f64 (+.f64 (*.f64 z y) x) y) t) |
(+.f64 (*.f64 (+.f64 (*.f64 t y) z) y) x) |
(+.f64 (*.f64 (+.f64 (*.f64 x z) y) z) t) |
(+.f64 (*.f64 (+.f64 (*.f64 x t) z) t) y) |
(+.f64 (*.f64 (+.f64 (*.f64 x y) t) y) z) |
| Outputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) |
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) x) t) |
(+.f64 t (*.f64 x (+.f64 (*.f64 x y) z))) |
(+.f64 (*.f64 (+.f64 (*.f64 z y) x) y) t) |
(+.f64 t (*.f64 y (+.f64 x (*.f64 y z)))) |
(+.f64 (*.f64 (+.f64 (*.f64 t y) z) y) x) |
(+.f64 x (*.f64 y (+.f64 z (*.f64 y t)))) |
(+.f64 (*.f64 (+.f64 (*.f64 x z) y) z) t) |
(+.f64 t (*.f64 z (+.f64 y (*.f64 x z)))) |
(+.f64 (*.f64 (+.f64 (*.f64 x t) z) t) y) |
(+.f64 y (*.f64 t (+.f64 z (*.f64 x t)))) |
(+.f64 (*.f64 (+.f64 (*.f64 x y) t) y) z) |
(+.f64 z (*.f64 y (+.f64 (*.f64 x y) t))) |
Compiled 17 to 12 computations (29.4% saved)
| 1× | egg-herbie |
| 4× | rational.json-simplify-2 |
| 4× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 25 |
| 1 | 14 | 25 |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| Outputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) |
Compiled 22 to 10 computations (54.5% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 1 | 2 | 3 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
Compiled 13 to 8 computations (38.5% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| ✓ | 0.1b | (*.f64 (+.f64 (*.f64 x y) z) y) |
Compiled 32 to 8 computations (75% saved)
21 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | (*.f64 (+.f64 (*.f64 x y) z) y) |
| 1.0ms | y | @ | 0 | (*.f64 (+.f64 (*.f64 x y) z) y) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 (*.f64 x y) z) y) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 (*.f64 x y) z) y) |
| 0.0ms | x | @ | 0 | (*.f64 (+.f64 (*.f64 x y) z) y) |
| 1× | batch-egg-rewrite |
| 3006× | rational.json-simplify-35 |
| 1456× | rational.json-simplify-1 |
| 1292× | rational.json-1 |
| 1292× | rational.json-2 |
| 1292× | rational.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 44 |
| 1 | 66 | 44 |
| 2 | 134 | 44 |
| 3 | 282 | 44 |
| 4 | 542 | 44 |
| 5 | 1271 | 44 |
| 6 | 2549 | 44 |
| 7 | 4017 | 44 |
| 8 | 5343 | 44 |
| 9 | 6643 | 44 |
| 10 | 7282 | 44 |
| 11 | 7282 | 44 |
| 12 | 7282 | 44 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 x y) z) y) |
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)) (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1))))) |
| 1× | egg-herbie |
| 4402× | rational.json-simplify-41 |
| 2258× | rational.json-simplify-35 |
| 2116× | rational.json-simplify-2 |
| 790× | rational.json-simplify-51 |
| 708× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 100 | 2805 |
| 1 | 233 | 2805 |
| 2 | 540 | 2805 |
| 3 | 1535 | 2805 |
| 4 | 3016 | 2805 |
| 5 | 3808 | 2805 |
| 6 | 4147 | 2805 |
| 7 | 4443 | 2805 |
| 8 | 4640 | 2805 |
| 9 | 4756 | 2805 |
| 10 | 4861 | 2805 |
| 11 | 5195 | 2805 |
| 12 | 5336 | 2805 |
| 13 | 5384 | 2805 |
| 14 | 5437 | 2805 |
| 15 | 5531 | 2805 |
| 16 | 5620 | 2805 |
| 17 | 5644 | 2805 |
| 18 | 5748 | 2805 |
| 19 | 5852 | 2805 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) t) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
t |
(+.f64 (*.f64 y z) t) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 t (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(*.f64 (+.f64 (*.f64 y x) z) y) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
t |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
t |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0) |
(+.f64 0 (*.f64 y (+.f64 (*.f64 x y) z))) |
(+.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)) (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2))) |
(-.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0) |
(/.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) 2) |
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 4)) 4) |
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)) 8) |
(/.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) 256) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))))) 512) |
(pow.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1) |
(-.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 0) |
(*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2)) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 1/2) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2)) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4)) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4) |
(*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)) 1/2) |
(/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) 256) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))))) 512) |
(pow.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1) |
| Outputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) t) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
t |
(+.f64 (*.f64 y z) t) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 t (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 (pow.f64 y 2) x) t) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x))) |
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t)) |
(*.f64 (+.f64 (*.f64 y x) z) y) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
t |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
t |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(+.f64 0 (*.f64 y (+.f64 (*.f64 x y) z))) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)) (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2))) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(-.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) 2) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 4)) 4) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)) 8) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))) 16) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))) 32) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))) 64) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))) 128) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) 256) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))))) 512) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(pow.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(-.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 0) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 1 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 1/2) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 1/4) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t))) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2) 2) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4)) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)) 1/2) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 2) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8) 8) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)) 16) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))) 32) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))) 64) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))) 128) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) 256) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))))) 512) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
(pow.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1) |
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x)))) |
Compiled 722 to 311 computations (56.9% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 48 | 4 | 52 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 48 | 5 | 53 |
| Status | Error | Program |
|---|---|---|
| ▶ | 18.7b | (+.f64 (*.f64 (pow.f64 y 2) x) t) |
| ✓ | 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| ▶ | 16.4b | (+.f64 (*.f64 y z) t) |
| ▶ | 34.6b | (*.f64 (+.f64 (*.f64 y x) z) y) |
| 29.1b | t |
Compiled 49 to 33 computations (32.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 (+.f64 (*.f64 y x) z) y) |
Compiled 22 to 7 computations (68.2% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | inf | (*.f64 (+.f64 (*.f64 y x) z) y) |
| 0.0ms | y | @ | 0 | (*.f64 (+.f64 (*.f64 y x) z) y) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 (*.f64 y x) z) y) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 (*.f64 y x) z) y) |
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 (*.f64 y x) z) y) |
| 1× | batch-egg-rewrite |
| 1650× | rational.json-simplify-35 |
| 1550× | rational.json-simplify-1 |
| 1416× | rational.json-simplify-53 |
| 1274× | exponential.json-3 |
| 1274× | rational.json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 53 | 19 |
| 2 | 113 | 19 |
| 3 | 237 | 19 |
| 4 | 441 | 19 |
| 5 | 1013 | 19 |
| 6 | 2460 | 19 |
| 7 | 4453 | 19 |
| 8 | 5356 | 19 |
| 9 | 6457 | 19 |
| 10 | 7302 | 19 |
| 11 | 7302 | 19 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 (*.f64 y x) z) y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 (*.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 (*.f64 y x) z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1))))) |
| 1× | egg-herbie |
| 2960× | rational.json-simplify-2 |
| 2546× | rational.json-simplify-35 |
| 2284× | rational.json-simplify-53 |
| 1056× | exponential.json-simplify-26 |
| 886× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 50 | 1034 |
| 1 | 133 | 1034 |
| 2 | 247 | 1034 |
| 3 | 582 | 1034 |
| 4 | 2110 | 1034 |
| 5 | 3967 | 1034 |
| 6 | 4477 | 1034 |
| 7 | 4612 | 1034 |
| 8 | 4711 | 1034 |
| 9 | 4810 | 1034 |
| 10 | 4907 | 1034 |
| 11 | 5932 | 1034 |
| 12 | 6446 | 1034 |
| 13 | 6579 | 1034 |
| 14 | 6579 | 1034 |
| 15 | 6579 | 1034 |
| 16 | 6675 | 1034 |
| 17 | 6771 | 1034 |
| 18 | 7237 | 1034 |
| 19 | 7542 | 1034 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0) |
(+.f64 0 (*.f64 y (+.f64 (*.f64 y x) z))) |
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2))) |
(-.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0) |
(/.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1) |
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 y x) z) 2)) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 4)) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))))) 256) |
(pow.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1) |
| Outputs |
|---|
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(*.f64 y z) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(+.f64 0 (*.f64 y (+.f64 (*.f64 y x) z))) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2))) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(-.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 y x) z) 2)) 2) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 4)) 4) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)) 8) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))) 16) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))) 32) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))) 64) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))))) 128) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))))) 256) |
(*.f64 y (+.f64 z (*.f64 y x))) |
(pow.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1) |
(*.f64 y (+.f64 z (*.f64 y x))) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 y z) t) |
Compiled 15 to 6 computations (60% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 y z) t) |
| 0.0ms | z | @ | inf | (+.f64 (*.f64 y z) t) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 y z) t) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 y z) t) |
| 0.0ms | z | @ | -inf | (+.f64 (*.f64 y z) t) |
| 1× | batch-egg-rewrite |
| 1524× | rational.json-simplify-35 |
| 1424× | rational.json-simplify-1 |
| 1386× | exponential.json-3 |
| 1386× | rational.json-1 |
| 1386× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 46 | 13 |
| 2 | 102 | 13 |
| 3 | 214 | 13 |
| 4 | 397 | 13 |
| 5 | 896 | 13 |
| 6 | 2314 | 13 |
| 7 | 4169 | 13 |
| 8 | 5353 | 13 |
| 9 | 6864 | 13 |
| 10 | 7675 | 13 |
| 11 | 7675 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 y z) t) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y z) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y z) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y z) t) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y z) t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y z) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y z) t) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y z) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y z) t) 1))))) |
| 1× | egg-herbie |
| 6176× | rational.json-simplify-51 |
| 3534× | rational.json-simplify-35 |
| 1360× | rational.json-simplify-49 |
| 1156× | rational.json-simplify-2 |
| 1124× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 338 |
| 1 | 121 | 338 |
| 2 | 423 | 338 |
| 3 | 1174 | 338 |
| 4 | 1878 | 338 |
| 5 | 2772 | 338 |
| 6 | 3259 | 338 |
| 7 | 3333 | 338 |
| 8 | 3381 | 338 |
| 9 | 3413 | 338 |
| 10 | 3445 | 338 |
| 11 | 3477 | 338 |
| 12 | 3509 | 338 |
| 13 | 3541 | 338 |
| 14 | 3573 | 338 |
| 15 | 3605 | 338 |
| 16 | 3637 | 338 |
| 17 | 3669 | 338 |
| 18 | 3701 | 338 |
| 19 | 4608 | 338 |
| 20 | 4867 | 338 |
| 21 | 4960 | 338 |
| 22 | 5049 | 338 |
| 23 | 5136 | 338 |
| 24 | 5222 | 338 |
| 25 | 5435 | 338 |
| 26 | 5435 | 338 |
| 27 | 5521 | 338 |
| 28 | 5607 | 338 |
| 29 | 5693 | 338 |
| 30 | 5779 | 338 |
| 31 | 5865 | 338 |
| 32 | 5951 | 338 |
| 33 | 6037 | 338 |
| 34 | 6123 | 338 |
| 35 | 6209 | 338 |
| 1× | node limit |
| Inputs |
|---|
t |
(*.f64 y z) |
(*.f64 y z) |
t |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 y z) |
t |
t |
(-.f64 (+.f64 (*.f64 y z) t) 0) |
(*.f64 (+.f64 (*.f64 y z) t) 1) |
(*.f64 1 (+.f64 (*.f64 y z) t)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 1/2)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 (*.f64 y z) t) 1/4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 1/4) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y z) t) 2)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y z) t) 4)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/4) 4) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y z) t) 8)) |
(/.f64 (+.f64 (*.f64 y z) t) 1) |
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 2) |
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 4) |
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))))) 256) |
(pow.f64 (+.f64 (*.f64 y z) t) 1) |
| Outputs |
|---|
t |
(*.f64 y z) |
(*.f64 y z) |
t |
(*.f64 y z) |
(*.f64 y z) |
(*.f64 y z) |
t |
t |
(-.f64 (+.f64 (*.f64 y z) t) 0) |
(+.f64 t (*.f64 y z)) |
(*.f64 (+.f64 (*.f64 y z) t) 1) |
(+.f64 t (*.f64 y z)) |
(*.f64 1 (+.f64 (*.f64 y z) t)) |
(+.f64 t (*.f64 y z)) |
(*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 1/2)) |
(+.f64 t (*.f64 y z)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 1/2) |
(+.f64 t (*.f64 y z)) |
(*.f64 4 (*.f64 (+.f64 (*.f64 y z) t) 1/4)) |
(+.f64 t (*.f64 y z)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 1/4) |
(+.f64 t (*.f64 y z)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 1/8) |
(+.f64 t (*.f64 y z)) |
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y z) t) 2)) |
(+.f64 t (*.f64 y z)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/2) 2) |
(+.f64 t (*.f64 y z)) |
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y z) t) 4)) |
(+.f64 t (*.f64 y z)) |
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/4) 4) |
(+.f64 t (*.f64 y z)) |
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y z) t) 8)) |
(+.f64 t (*.f64 y z)) |
(/.f64 (+.f64 (*.f64 y z) t) 1) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 2) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 4) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 8) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)) 16) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))) 32) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))) 64) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))))) 128) |
(+.f64 t (*.f64 y z)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))))) 256) |
(+.f64 t (*.f64 y z)) |
(pow.f64 (+.f64 (*.f64 y z) t) 1) |
(+.f64 t (*.f64 y z)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 10.6b | (*.f64 (pow.f64 y 2) x) |
Compiled 23 to 14 computations (39.1% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 (pow.f64 y 2) x) |
| 0.0ms | y | @ | 0 | (*.f64 (pow.f64 y 2) x) |
| 0.0ms | x | @ | inf | (*.f64 (pow.f64 y 2) x) |
| 0.0ms | x | @ | -inf | (*.f64 (pow.f64 y 2) x) |
| 0.0ms | y | @ | inf | (*.f64 (pow.f64 y 2) x) |
| 1× | batch-egg-rewrite |
| 2314× | rational.json-simplify-2 |
| 1668× | rational.json-simplify-35 |
| 1356× | rational.json-1 |
| 1356× | rational.json-2 |
| 1356× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 45 | 13 |
| 2 | 98 | 13 |
| 3 | 190 | 13 |
| 4 | 334 | 13 |
| 5 | 732 | 13 |
| 6 | 1767 | 13 |
| 7 | 3086 | 13 |
| 8 | 3762 | 13 |
| 9 | 4514 | 13 |
| 10 | 5525 | 13 |
| 11 | 6106 | 13 |
| 12 | 6106 | 13 |
| 13 | 7431 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (pow.f64 y 2) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 y 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 2) (*.f64 x 1/2)) (*.f64 (pow.f64 y 2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 y 2) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 2) x) 1))))) |
| 1× | egg-herbie |
| 3016× | rational.json-simplify-2 |
| 2368× | rational.json-simplify-35 |
| 1646× | rational.json-simplify-53 |
| 1350× | exponential.json-simplify-26 |
| 1012× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 195 |
| 1 | 130 | 195 |
| 2 | 256 | 195 |
| 3 | 590 | 195 |
| 4 | 2459 | 195 |
| 5 | 4075 | 195 |
| 6 | 4591 | 195 |
| 7 | 4726 | 195 |
| 8 | 4830 | 195 |
| 9 | 4931 | 195 |
| 10 | 5652 | 195 |
| 11 | 6493 | 195 |
| 12 | 6930 | 195 |
| 13 | 7029 | 195 |
| 14 | 7029 | 195 |
| 15 | 7128 | 195 |
| 16 | 7227 | 195 |
| 17 | 7987 | 195 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 (pow.f64 y 2) x) 0) |
(+.f64 0 (*.f64 (pow.f64 y 2) x)) |
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 x 1/2)) (*.f64 (pow.f64 y 2) (*.f64 x 1/2))) |
(-.f64 (*.f64 (pow.f64 y 2) x) 0) |
(/.f64 (*.f64 (pow.f64 y 2) x) 1) |
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) x)) 2) |
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 4)) 4) |
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 8)) 8) |
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))))) 256) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))))) 512) |
(pow.f64 (*.f64 (pow.f64 y 2) x) 1) |
| Outputs |
|---|
(+.f64 (*.f64 (pow.f64 y 2) x) 0) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 0 (*.f64 (pow.f64 y 2) x)) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 x 1/2)) (*.f64 (pow.f64 y 2) (*.f64 x 1/2))) |
(*.f64 (pow.f64 y 2) x) |
(-.f64 (*.f64 (pow.f64 y 2) x) 0) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 (pow.f64 y 2) x) 1) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) x)) 2) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 4)) 4) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 8)) 8) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))) 16) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))) 32) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))) 64) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))) 128) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))))) 256) |
(*.f64 (pow.f64 y 2) x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))))) 512) |
(*.f64 (pow.f64 y 2) x) |
(pow.f64 (*.f64 (pow.f64 y 2) x) 1) |
(*.f64 (pow.f64 y 2) x) |
Compiled 656 to 378 computations (42.4% saved)
6 alts after pruning (3 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 58 | 2 | 60 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 3 | 3 |
| Total | 59 | 6 | 65 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| ✓ | 16.4b | (+.f64 (*.f64 y z) t) |
| ▶ | 51.2b | (*.f64 (pow.f64 y 2) x) |
| ✓ | 34.6b | (*.f64 (+.f64 (*.f64 y x) z) y) |
| ▶ | 50.0b | (*.f64 y z) |
| 29.1b | t |
Compiled 54 to 37 computations (31.5% saved)
Compiled 9 to 5 computations (44.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 10.6b | (*.f64 (pow.f64 y 2) x) |
Compiled 15 to 10 computations (33.3% saved)
Compiled 182 to 148 computations (18.7% saved)
6 alts after pruning (1 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 16 | 0 | 16 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 16 | 6 | 22 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| ✓ | 16.4b | (+.f64 (*.f64 y z) t) |
| ✓ | 51.2b | (*.f64 (pow.f64 y 2) x) |
| ✓ | 34.6b | (*.f64 (+.f64 (*.f64 y x) z) y) |
| ✓ | 50.0b | (*.f64 y z) |
| 29.1b | t |
Compiled 54 to 37 computations (31.5% saved)
Compiled 4 to 4 computations (0% saved)
6 alts after pruning (1 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 5 | 5 |
| Total | 0 | 6 | 6 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.1b | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| ✓ | 16.4b | (+.f64 (*.f64 y z) t) |
| ✓ | 51.2b | (*.f64 (pow.f64 y 2) x) |
| ✓ | 34.6b | (*.f64 (+.f64 (*.f64 y x) z) y) |
| ✓ | 50.0b | (*.f64 y z) |
| 29.1b | t |
Compiled 54 to 37 computations (31.5% saved)
| Inputs |
|---|
t |
(*.f64 y z) |
(+.f64 (*.f64 y z) t) |
(*.f64 (+.f64 (*.f64 y x) z) y) |
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
(*.f64 (pow.f64 y 2) x) |
(+.f64 (*.f64 (pow.f64 y 2) x) t) |
| Outputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
6 calls:
| 6.0ms | (*.f64 (+.f64 (*.f64 x y) z) y) |
| 6.0ms | t |
| 5.0ms | y |
| 5.0ms | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| 5.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 0.1b | 1 | x |
| 0.1b | 1 | y |
| 0.1b | 1 | z |
| 0.1b | 1 | t |
| 0.1b | 1 | (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
| 0.1b | 1 | (*.f64 (+.f64 (*.f64 x y) z) y) |
Compiled 85 to 51 computations (40% saved)
| Inputs |
|---|
t |
(*.f64 y z) |
(+.f64 (*.f64 y z) t) |
(*.f64 (+.f64 (*.f64 y x) z) y) |
| Outputs |
|---|
(*.f64 (+.f64 (*.f64 y x) z) y) |
(+.f64 (*.f64 y z) t) |
(*.f64 (+.f64 (*.f64 y x) z) y) |
4 calls:
| 14.0ms | y |
| 11.0ms | z |
| 11.0ms | t |
| 4.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 16.4b | 1 | x |
| 7.7b | 3 | y |
| 15.0b | 3 | z |
| 11.7b | 3 | t |
Compiled 40 to 25 computations (37.5% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 12.0ms | 13879.143820949903 | 692974.7639915938 |
| 10.0ms | -175928.56472731344 | -30596.122585945945 |
| 20.0ms | 208× | body | 256 | valid |
| 1.0ms | 7× | body | 256 | infinite |
Compiled 306 to 209 computations (31.7% saved)
| Inputs |
|---|
t |
(*.f64 y z) |
(+.f64 (*.f64 y z) t) |
| Outputs |
|---|
(+.f64 (*.f64 y z) t) |
4 calls:
| 4.0ms | z |
| 3.0ms | t |
| 3.0ms | y |
| 3.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 16.4b | 1 | x |
| 16.4b | 1 | y |
| 16.4b | 1 | z |
| 16.4b | 1 | t |
Compiled 33 to 22 computations (33.3% saved)
Total -37.5b remaining (-152.3%)
Threshold costs -37.5b (-152.3%)
| Inputs |
|---|
t |
(*.f64 y z) |
| Outputs |
|---|
t |
(*.f64 y z) |
t |
4 calls:
| 14.0ms | y |
| 9.0ms | x |
| 9.0ms | t |
| 8.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 27.9b | 3 | x |
| 26.6b | 4 | y |
| 27.5b | 2 | z |
| 24.6b | 3 | t |
Compiled 28 to 21 computations (25% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 17.0ms | 3.1467564376486585e-167 | 1.902789951923398e-148 |
| 7.0ms | -1.8288356495424239e-155 | -1.2890721187267004e-155 |
| 21.0ms | 224× | body | 256 | valid |
Compiled 216 to 168 computations (22.2% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 135 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
(if (<=.f64 y -70000) (*.f64 (+.f64 (*.f64 y x) z) y) (if (<=.f64 y 420000) (+.f64 (*.f64 y z) t) (*.f64 (+.f64 (*.f64 y x) z) y))) |
(+.f64 (*.f64 y z) t) |
(if (<=.f64 t -7729075046034517/483067190377157293086918986366498418037365916213304374832154406431439892786195053067024220822740322245307952003937772147170634832630373456967863584183385093587122601852928) t (if (<=.f64 t 8695209426788831/966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856) (*.f64 y z) t)) |
t |
| Outputs |
|---|
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t) |
(if (<=.f64 y -70000) (*.f64 (+.f64 (*.f64 y x) z) y) (if (<=.f64 y 420000) (+.f64 (*.f64 y z) t) (*.f64 (+.f64 (*.f64 y x) z) y))) |
(+.f64 (*.f64 y z) t) |
(if (<=.f64 t -7729075046034517/483067190377157293086918986366498418037365916213304374832154406431439892786195053067024220822740322245307952003937772147170634832630373456967863584183385093587122601852928) t (if (<=.f64 t 8695209426788831/966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856) (*.f64 y z) t)) |
t |
Compiled 75 to 44 computations (41.3% saved)
Compiled 59 to 25 computations (57.6% saved)
Loading profile data...