Time bar (total: 8.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 74.6% | 25.4% | 0% | 0% | 0% | 0 |
| 0% | 0% | 74.6% | 25.4% | 0% | 0% | 0% | 1 |
| 50% | 37.3% | 37.3% | 25.4% | 0% | 0% | 0% | 2 |
| 66.7% | 37.3% | 18.7% | 25.4% | 18.7% | 0% | 0% | 3 |
| 83.3% | 46.7% | 9.3% | 25.4% | 18.7% | 0% | 0% | 4 |
| 90.9% | 46.7% | 4.7% | 25.4% | 23.3% | 0% | 0% | 5 |
| 95.5% | 49% | 2.3% | 25.4% | 23.3% | 0% | 0% | 6 |
| 97.7% | 49% | 1.2% | 25.4% | 24.5% | 0% | 0% | 7 |
| 98.8% | 49.6% | 0.6% | 25.4% | 24.5% | 0% | 0% | 8 |
| 99.4% | 49.9% | 0.3% | 25.4% | 24.5% | 0% | 0% | 9 |
| 99.7% | 49.9% | 0.1% | 25.4% | 24.6% | 0% | 0% | 10 |
| 99.9% | 49.9% | 0.1% | 25.4% | 24.7% | 0% | 0% | 11 |
| 99.9% | 49.9% | 0% | 25.4% | 24.7% | 0% | 0% | 12 |
Compiled 8 to 6 computations (25% saved)
| 1.2s | 4127× | body | 1024 | valid |
| 534.0ms | 2033× | body | 512 | valid |
| 207.0ms | 386× | body | 2048 | valid |
| 136.0ms | 1710× | body | 256 | valid |
| 0.0ms | 3× | body | 256 | infinite |
| 2× | egg-herbie |
| 2× | rational.json-simplify-16 |
| 2× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 9 | 11 |
| 2 | 10 | 11 |
| 0 | 1 | 1 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
0 |
| Outputs |
|---|
0 |
| Inputs |
|---|
(-.f64 (exp.f64 x) 1) |
| Outputs |
|---|
(-.f64 (exp.f64 x) 1) |
(+.f64 (exp.f64 x) -1) |
Compiled 6 to 5 computations (16.7% saved)
| 1× | egg-herbie |
| 2× | rational.json-simplify-16 |
| 2× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 9 | 11 |
| 2 | 10 | 11 |
| 1× | saturated |
| Inputs |
|---|
(-.f64 (exp.f64 x) 1) |
| Outputs |
|---|
(-.f64 (exp.f64 x) 1) |
(+.f64 (exp.f64 x) -1) |
Compiled 9 to 6 computations (33.3% 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 |
|---|---|---|
| ▶ | 58.3b | (-.f64 (exp.f64 x) 1) |
Compiled 5 to 4 computations (20% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 7.6b | (-.f64 (exp.f64 x) 1) |
Compiled 9 to 5 computations (44.4% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (-.f64 (exp.f64 x) 1) |
| 0.0ms | x | @ | inf | (-.f64 (exp.f64 x) 1) |
| 0.0ms | x | @ | -inf | (-.f64 (exp.f64 x) 1) |
| 1× | batch-egg-rewrite |
| 1684× | bool.json-1 |
| 1684× | bool.json-2 |
| 1640× | rational.json-1 |
| 1640× | rational.json-2 |
| 1136× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 77 | 11 |
| 2 | 239 | 11 |
| 3 | 476 | 11 |
| 4 | 913 | 11 |
| 5 | 1947 | 11 |
| 6 | 4074 | 11 |
| 7 | 6635 | 11 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (exp.f64 x) 1) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 x) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (exp.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) (*.f64 (+.f64 (exp.f64 x) -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 (*.f64 (exp.f64 x) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (exp.f64 x) -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (+.f64 (exp.f64 x) -1) 4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 x) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (exp.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (exp.f64 x) -1) (+.f64 (exp.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (exp.f64 x) -1) (+.f64 (exp.f64 x) -1)))))) |
| 1× | egg-herbie |
| 4032× | rational.json-simplify-51 |
| 2700× | rational.json-simplify-35 |
| 2086× | rational.json-simplify-2 |
| 1462× | rational.json-simplify-49 |
| 1124× | rational.json-simplify-48 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 69 | 387 |
| 1 | 133 | 387 |
| 2 | 309 | 387 |
| 3 | 820 | 387 |
| 4 | 1418 | 387 |
| 5 | 2194 | 387 |
| 6 | 2582 | 387 |
| 7 | 2667 | 387 |
| 8 | 2786 | 387 |
| 9 | 2916 | 387 |
| 10 | 3467 | 387 |
| 11 | 3695 | 387 |
| 12 | 3825 | 387 |
| 13 | 3928 | 387 |
| 14 | 3992 | 387 |
| 15 | 4041 | 387 |
| 16 | 4084 | 387 |
| 17 | 4127 | 387 |
| 18 | 4170 | 387 |
| 19 | 5199 | 387 |
| 20 | 5799 | 387 |
| 21 | 5873 | 387 |
| 22 | 5924 | 387 |
| 23 | 5991 | 387 |
| 24 | 6059 | 387 |
| 25 | 6146 | 387 |
| 26 | 6215 | 387 |
| 27 | 6310 | 387 |
| 28 | 6373 | 387 |
| 29 | 6461 | 387 |
| 30 | 6506 | 387 |
| 31 | 6542 | 387 |
| 32 | 6578 | 387 |
| 33 | 6578 | 387 |
| 34 | 6614 | 387 |
| 35 | 6650 | 387 |
| 1× | node limit |
| Inputs |
|---|
x |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x))) |
(+.f64 (exp.f64 x) -1) |
(+.f64 (+.f64 (exp.f64 x) -1) 0) |
(+.f64 0 (+.f64 (exp.f64 x) -1)) |
(+.f64 -1 (exp.f64 x)) |
(+.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) (*.f64 (+.f64 (exp.f64 x) -1) 1/2)) |
(+.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 (*.f64 (exp.f64 x) 1/2) 1)) |
(*.f64 1 (+.f64 (exp.f64 x) -1)) |
(*.f64 (+.f64 (exp.f64 x) -1) 1) |
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 1/2)) |
(*.f64 4 (/.f64 (+.f64 (exp.f64 x) -1) 4)) |
(*.f64 4 (*.f64 (/.f64 (+.f64 (exp.f64 x) -1) 4) 1)) |
(*.f64 4 (*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 1/2)) |
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2) |
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4) |
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2)) |
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4)) |
(*.f64 (/.f64 (+.f64 (exp.f64 x) -1) 4) 4) |
(/.f64 (+.f64 (exp.f64 x) -1) 1) |
(/.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2) |
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4) |
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64) |
| Outputs |
|---|
x |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/6 (pow.f64 x 3)))) |
(+.f64 x (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))) |
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (+.f64 x (*.f64 1/24 (pow.f64 x 4))) (*.f64 1/6 (pow.f64 x 3)))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 x (*.f64 1/24 (pow.f64 x 4))))) |
(+.f64 (+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) (*.f64 1/24 (pow.f64 x 4))) |
(+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 x (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4))))) |
(+.f64 (exp.f64 x) -1) |
(+.f64 (+.f64 (exp.f64 x) -1) 0) |
(+.f64 (exp.f64 x) -1) |
(+.f64 0 (+.f64 (exp.f64 x) -1)) |
(+.f64 (exp.f64 x) -1) |
(+.f64 -1 (exp.f64 x)) |
(+.f64 (exp.f64 x) -1) |
(+.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) (*.f64 (+.f64 (exp.f64 x) -1) 1/2)) |
(+.f64 (exp.f64 x) -1) |
(+.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 (*.f64 (exp.f64 x) 1/2) 1)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 1 (+.f64 (exp.f64 x) -1)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 (+.f64 (exp.f64 x) -1) 1) |
(+.f64 (exp.f64 x) -1) |
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 1/2)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 4 (/.f64 (+.f64 (exp.f64 x) -1) 4)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 4 (*.f64 (/.f64 (+.f64 (exp.f64 x) -1) 4) 1)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 4 (*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 1/2)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2) |
(+.f64 (exp.f64 x) -1) |
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4) |
(+.f64 (exp.f64 x) -1) |
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 2) |
(+.f64 (exp.f64 x) -1) |
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4)) |
(+.f64 (exp.f64 x) -1) |
(*.f64 (/.f64 (+.f64 (exp.f64 x) -1) 4) 4) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (+.f64 (exp.f64 x) -1) 1) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32) |
(+.f64 (exp.f64 x) -1) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64) |
(+.f64 (exp.f64 x) -1) |
Compiled 397 to 301 computations (24.2% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 34 | 4 | 38 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 34 | 5 | 39 |
| Status | Error | Program |
|---|---|---|
| ✓ | 58.3b | (-.f64 (exp.f64 x) 1) |
| ▶ | 0.7b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| ▶ | 0.5b | (+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
| ▶ | 0.4b | (+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
| 1.5b | x |
Compiled 49 to 38 computations (22.4% saved)
Found 4 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 1/2 (pow.f64 x 2)) |
| ✓ | 0.0b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
| ✓ | 0.1b | (*.f64 1/24 (pow.f64 x 4)) |
| ✓ | 0.1b | (*.f64 1/6 (pow.f64 x 3)) |
Compiled 79 to 63 computations (20.3% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | (*.f64 1/6 (pow.f64 x 3)) |
| 0.0ms | x | @ | inf | (*.f64 1/24 (pow.f64 x 4)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
| 0.0ms | x | @ | 0 | (*.f64 1/24 (pow.f64 x 4)) |
| 0.0ms | x | @ | -inf | (*.f64 1/6 (pow.f64 x 3)) |
| 1× | batch-egg-rewrite |
| 1468× | bool.json-1 |
| 1468× | bool.json-2 |
| 1404× | rational.json-1 |
| 1404× | rational.json-2 |
| 1404× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 70 |
| 1 | 153 | 70 |
| 2 | 347 | 70 |
| 3 | 644 | 70 |
| 4 | 1290 | 70 |
| 5 | 2799 | 70 |
| 6 | 5700 | 70 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/6 (pow.f64 x 3)) |
(*.f64 1/24 (pow.f64 x 4)) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/2 (pow.f64 x 2)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/6 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/6 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/6 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/6 (pow.f64 x 3))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/24 (pow.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/24 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 4) 1/48) (*.f64 (pow.f64 x 4) 1/48))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/24 (pow.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/24 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 4) 1/12) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/6 (pow.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12))) (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/24 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/24 (pow.f64 x 4)) (*.f64 1/24 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/24 (pow.f64 x 4)) (*.f64 1/24 (pow.f64 x 4))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 3) 1/12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 (pow.f64 x 3) 2/3) (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (pow.f64 x 2)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 8) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/2 (pow.f64 x 2))))))) |
| 1× | egg-herbie |
| 7694× | rational.json-simplify-49 |
| 4470× | rational.json-simplify-35 |
| 1742× | rational.json-simplify-2 |
| 918× | rational.json-simplify-1 |
| 776× | rational.json-simplify-43 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 103 | 1328 |
| 1 | 215 | 1328 |
| 2 | 446 | 1328 |
| 3 | 1104 | 1328 |
| 4 | 3153 | 1328 |
| 5 | 3712 | 1328 |
| 6 | 3951 | 1328 |
| 7 | 4097 | 1328 |
| 8 | 4231 | 1328 |
| 9 | 4365 | 1328 |
| 10 | 5049 | 1328 |
| 11 | 5211 | 1328 |
| 12 | 5211 | 1328 |
| 13 | 5211 | 1328 |
| 14 | 5345 | 1328 |
| 15 | 5479 | 1328 |
| 16 | 5613 | 1328 |
| 17 | 5747 | 1328 |
| 18 | 5881 | 1328 |
| 19 | 6015 | 1328 |
| 20 | 6149 | 1328 |
| 21 | 6283 | 1328 |
| 22 | 6417 | 1328 |
| 23 | 6417 | 1328 |
| 24 | 6551 | 1328 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/2 (pow.f64 x 2)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) 0) |
(+.f64 0 (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12)) |
(-.f64 (*.f64 1/6 (pow.f64 x 3)) 0) |
(/.f64 (*.f64 1/6 (pow.f64 x 3)) 1) |
(/.f64 (*.f64 (pow.f64 x 3) 1/3) 2) |
(/.f64 (*.f64 (pow.f64 x 3) 2/3) 4) |
(/.f64 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8))) 32) |
(+.f64 (*.f64 1/24 (pow.f64 x 4)) 0) |
(+.f64 0 (*.f64 1/24 (pow.f64 x 4))) |
(+.f64 (*.f64 (pow.f64 x 4) 1/48) (*.f64 (pow.f64 x 4) 1/48)) |
(-.f64 (*.f64 1/24 (pow.f64 x 4)) 0) |
(/.f64 (*.f64 1/24 (pow.f64 x 4)) 1) |
(/.f64 (*.f64 (pow.f64 x 4) 1/12) 2) |
(/.f64 (*.f64 1/6 (pow.f64 x 4)) 4) |
(/.f64 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12)) 8) |
(/.f64 (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12))) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12))) (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12)))) 32) |
(-.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 0) |
(*.f64 4 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 8)) |
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) |
(*.f64 2 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 3) 1/12))) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 2) 1/4))) |
(*.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 1) |
(*.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))) |
(*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/2) |
(*.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1/4) |
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) |
(*.f64 1/4 (+.f64 (*.f64 (pow.f64 x 3) 2/3) (*.f64 2 (pow.f64 x 2)))) |
(*.f64 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 2) |
(*.f64 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 8) 4) |
(/.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 1) |
(/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 2) |
(/.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 4) |
(/.f64 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 8) |
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))) 32) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) 0) |
(+.f64 0 (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 1/4)) |
(-.f64 (*.f64 1/2 (pow.f64 x 2)) 0) |
(/.f64 (pow.f64 x 2) 2) |
(/.f64 (*.f64 1/2 (pow.f64 x 2)) 1) |
(/.f64 (*.f64 2 (pow.f64 x 2)) 4) |
(/.f64 (*.f64 4 (pow.f64 x 2)) 8) |
(/.f64 (*.f64 (pow.f64 x 2) 8) 16) |
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) 32) |
| Outputs |
|---|
(*.f64 1/2 (pow.f64 x 2)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/6 (pow.f64 x 3)) 0) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 0 (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12)) |
(*.f64 1/6 (pow.f64 x 3)) |
(-.f64 (*.f64 1/6 (pow.f64 x 3)) 0) |
(*.f64 1/6 (pow.f64 x 3)) |
(/.f64 (*.f64 1/6 (pow.f64 x 3)) 1) |
(*.f64 1/6 (pow.f64 x 3)) |
(/.f64 (*.f64 (pow.f64 x 3) 1/3) 2) |
(*.f64 1/6 (pow.f64 x 3)) |
(/.f64 (*.f64 (pow.f64 x 3) 2/3) 4) |
(*.f64 1/6 (pow.f64 x 3)) |
(/.f64 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8) 8) |
(*.f64 1/6 (pow.f64 x 3)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8)) 16) |
(*.f64 1/6 (pow.f64 x 3)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 1/6 (pow.f64 x 3)) 8))) 32) |
(*.f64 1/6 (pow.f64 x 3)) |
(+.f64 (*.f64 1/24 (pow.f64 x 4)) 0) |
(*.f64 1/24 (pow.f64 x 4)) |
(+.f64 0 (*.f64 1/24 (pow.f64 x 4))) |
(*.f64 1/24 (pow.f64 x 4)) |
(+.f64 (*.f64 (pow.f64 x 4) 1/48) (*.f64 (pow.f64 x 4) 1/48)) |
(*.f64 1/24 (pow.f64 x 4)) |
(-.f64 (*.f64 1/24 (pow.f64 x 4)) 0) |
(*.f64 1/24 (pow.f64 x 4)) |
(/.f64 (*.f64 1/24 (pow.f64 x 4)) 1) |
(*.f64 1/24 (pow.f64 x 4)) |
(/.f64 (*.f64 (pow.f64 x 4) 1/12) 2) |
(*.f64 1/24 (pow.f64 x 4)) |
(/.f64 (*.f64 1/6 (pow.f64 x 4)) 4) |
(*.f64 1/24 (pow.f64 x 4)) |
(/.f64 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12)) 8) |
(*.f64 1/24 (pow.f64 x 4)) |
(/.f64 (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12))) 16) |
(*.f64 1/24 (pow.f64 x 4)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12))) (*.f64 2 (*.f64 4 (*.f64 (pow.f64 x 4) 1/12)))) 32) |
(*.f64 1/24 (pow.f64 x 4)) |
(-.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 0) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 4 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 8)) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 2 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 3) 1/12))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 2) 1/4))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 1) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/2) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1/4) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 1/4 (+.f64 (*.f64 (pow.f64 x 3) 2/3) (*.f64 2 (pow.f64 x 2)))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 2) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(*.f64 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 8) 4) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(/.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))) 1) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 2) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(/.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 4) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(/.f64 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 8) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) 16) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))) (*.f64 2 (*.f64 4 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))) 32) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) 0) |
(*.f64 1/2 (pow.f64 x 2)) |
(+.f64 0 (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1/2 (pow.f64 x 2)) |
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 1/4)) |
(*.f64 1/2 (pow.f64 x 2)) |
(-.f64 (*.f64 1/2 (pow.f64 x 2)) 0) |
(*.f64 1/2 (pow.f64 x 2)) |
(/.f64 (pow.f64 x 2) 2) |
(*.f64 1/2 (pow.f64 x 2)) |
(/.f64 (*.f64 1/2 (pow.f64 x 2)) 1) |
(*.f64 1/2 (pow.f64 x 2)) |
(/.f64 (*.f64 2 (pow.f64 x 2)) 4) |
(*.f64 1/2 (pow.f64 x 2)) |
(/.f64 (*.f64 4 (pow.f64 x 2)) 8) |
(*.f64 1/2 (pow.f64 x 2)) |
(/.f64 (*.f64 (pow.f64 x 2) 8) 16) |
(*.f64 1/2 (pow.f64 x 2)) |
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) 32) |
(*.f64 1/2 (pow.f64 x 2)) |
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (*.f64 1/2 (pow.f64 x 2)) | |
| 0.0b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) | |
| 0.1b | (*.f64 1/6 (pow.f64 x 3)) |
Compiled 46 to 36 computations (21.7% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| 0.0b | (*.f64 1/2 (pow.f64 x 2)) |
Compiled 19 to 14 computations (26.3% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| 1× | batch-egg-rewrite |
| 1662× | bool.json-1 |
| 1662× | bool.json-2 |
| 1612× | rational.json-1 |
| 1612× | rational.json-2 |
| 1086× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 79 | 19 |
| 2 | 207 | 19 |
| 3 | 413 | 19 |
| 4 | 826 | 19 |
| 5 | 1785 | 19 |
| 6 | 4046 | 19 |
| 7 | 6726 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (*.f64 1/2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (*.f64 1/2 (pow.f64 x 2))) (+.f64 x (*.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (*.f64 1/2 (pow.f64 x 2))) (+.f64 x (*.f64 1/2 (pow.f64 x 2)))))))) |
| 1× | egg-herbie |
| 4850× | rational.json-simplify-51 |
| 1826× | rational.json-simplify-35 |
| 1820× | rational.json-simplify-49 |
| 1228× | rational.json-simplify-1 |
| 1036× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 450 |
| 1 | 108 | 450 |
| 2 | 215 | 450 |
| 3 | 650 | 450 |
| 4 | 1490 | 450 |
| 5 | 2864 | 450 |
| 6 | 3872 | 450 |
| 7 | 3925 | 450 |
| 8 | 3961 | 450 |
| 9 | 3987 | 450 |
| 10 | 4011 | 450 |
| 11 | 4035 | 450 |
| 12 | 4059 | 450 |
| 13 | 4083 | 450 |
| 14 | 4107 | 450 |
| 15 | 4131 | 450 |
| 16 | 4155 | 450 |
| 17 | 4179 | 450 |
| 18 | 4203 | 450 |
| 19 | 4227 | 450 |
| 20 | 4251 | 450 |
| 21 | 4275 | 450 |
| 22 | 4299 | 450 |
| 23 | 4323 | 450 |
| 24 | 4347 | 450 |
| 25 | 4371 | 450 |
| 26 | 4395 | 450 |
| 27 | 4419 | 450 |
| 28 | 4443 | 450 |
| 29 | 4467 | 450 |
| 30 | 4491 | 450 |
| 31 | 4515 | 450 |
| 32 | 4539 | 450 |
| 33 | 4563 | 450 |
| 34 | 4587 | 450 |
| 35 | 4611 | 450 |
| 36 | 4635 | 450 |
| 37 | 4659 | 450 |
| 38 | 4683 | 450 |
| 39 | 4707 | 450 |
| 40 | 5749 | 450 |
| 1× | node limit |
| Inputs |
|---|
x |
(*.f64 1/2 (pow.f64 x 2)) |
(*.f64 1/2 (pow.f64 x 2)) |
(-.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 0) |
(*.f64 1/2 (+.f64 x (+.f64 x (pow.f64 x 2)))) |
(*.f64 2 (*.f64 1/2 (+.f64 x (*.f64 1/2 (pow.f64 x 2))))) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 1/2 x))) |
(*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1) |
(*.f64 1 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))) |
(*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/2) |
(*.f64 4 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1/4)) |
(*.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 1/4) |
(*.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8) 1/8) |
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))) 2) |
(*.f64 1/4 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2))))) |
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 x 4))) |
(*.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1/4) 4) |
(/.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
(/.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 4) |
(/.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8)))) 64) |
| Outputs |
|---|
x |
(*.f64 1/2 (pow.f64 x 2)) |
(*.f64 1/2 (pow.f64 x 2)) |
(-.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 0) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1/2 (+.f64 x (+.f64 x (pow.f64 x 2)))) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 2 (*.f64 1/2 (+.f64 x (*.f64 1/2 (pow.f64 x 2))))) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 1/2 x))) |
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 x 1/2))) |
(*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/2) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 4 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1/4)) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 1/4) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8) 1/8) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))) 2) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1/4 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2))))) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 x 4))) |
(*.f64 1/4 (+.f64 (*.f64 x 4) (*.f64 2 (pow.f64 x 2)))) |
(*.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1/4) 4) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 1) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 4) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8) 8) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8)) 16) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8))) 32) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) 8)))) 64) |
(+.f64 x (*.f64 1/2 (pow.f64 x 2))) |
Compiled 2248 to 1809 computations (19.5% saved)
6 alts after pruning (2 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 134 | 1 | 135 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 3 | 3 |
| Total | 134 | 6 | 140 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.7b | (/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
| ✓ | 58.3b | (-.f64 (exp.f64 x) 1) |
| ✓ | 0.7b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| ✓ | 0.5b | (+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
| ✓ | 0.4b | (+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
| 1.5b | x |
Compiled 59 to 45 computations (23.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (+.f64 x (pow.f64 x 2))) |
Compiled 27 to 17 computations (37% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | (+.f64 x (+.f64 x (pow.f64 x 2))) |
| 0.0ms | x | @ | 0 | (+.f64 x (+.f64 x (pow.f64 x 2))) |
| 0.0ms | x | @ | inf | (+.f64 x (+.f64 x (pow.f64 x 2))) |
| 1× | batch-egg-rewrite |
| 1968× | bool.json-1 |
| 1968× | bool.json-2 |
| 1228× | rational.json-1 |
| 1228× | rational.json-2 |
| 1228× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 19 |
| 1 | 70 | 19 |
| 2 | 192 | 19 |
| 3 | 396 | 19 |
| 4 | 844 | 19 |
| 5 | 1920 | 19 |
| 6 | 4513 | 19 |
| 7 | 7645 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (+.f64 x (pow.f64 x 2))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 (pow.f64 x 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x (pow.f64 x 2)) 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x (pow.f64 x 2)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 x (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (pow.f64 x 2) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 x (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 x (pow.f64 x 2))) (+.f64 x (+.f64 x (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 x (pow.f64 x 2))) (+.f64 x (+.f64 x (pow.f64 x 2)))))))) |
| 1× | egg-herbie |
| 5906× | rational.json-simplify-51 |
| 1980× | rational.json-simplify-35 |
| 1726× | rational.json-simplify-2 |
| 1414× | rational.json-simplify-1 |
| 1044× | rational.json-simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 57 | 634 |
| 1 | 114 | 634 |
| 2 | 255 | 634 |
| 3 | 763 | 634 |
| 4 | 1198 | 634 |
| 5 | 2661 | 634 |
| 6 | 3551 | 634 |
| 7 | 3613 | 634 |
| 8 | 3644 | 634 |
| 9 | 3670 | 634 |
| 10 | 3696 | 634 |
| 11 | 3722 | 634 |
| 12 | 3772 | 634 |
| 13 | 3798 | 634 |
| 14 | 3824 | 634 |
| 15 | 3850 | 634 |
| 16 | 3876 | 634 |
| 17 | 3902 | 634 |
| 18 | 3928 | 634 |
| 19 | 4661 | 634 |
| 20 | 5048 | 634 |
| 21 | 5080 | 634 |
| 22 | 5110 | 634 |
| 23 | 5139 | 634 |
| 24 | 5168 | 634 |
| 25 | 5197 | 634 |
| 26 | 5226 | 634 |
| 27 | 5255 | 634 |
| 28 | 5284 | 634 |
| 29 | 5313 | 634 |
| 30 | 5342 | 634 |
| 31 | 5371 | 634 |
| 32 | 5400 | 634 |
| 33 | 5429 | 634 |
| 34 | 5458 | 634 |
| 35 | 5487 | 634 |
| 36 | 5516 | 634 |
| 37 | 5545 | 634 |
| 38 | 5574 | 634 |
| 39 | 5603 | 634 |
| 40 | 5603 | 634 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 2 x) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(-.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 0) |
(*.f64 2 (+.f64 x (*.f64 (pow.f64 x 2) 1/2))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 x (pow.f64 x 2)) 1/2) (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x (pow.f64 x 2)) 1/2))) |
(*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1) |
(*.f64 1 (+.f64 x (+.f64 x (pow.f64 x 2)))) |
(*.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 1/2) |
(*.f64 4 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/4)) |
(*.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4) 1/4) |
(*.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8) 1/8) |
(*.f64 1/2 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2))))) |
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (pow.f64 x 2)))) |
(*.f64 (+.f64 x (*.f64 (pow.f64 x 2) 1/2)) 2) |
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4)) |
(*.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/4) 4) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1) |
(/.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 2) |
(/.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4) 4) |
(/.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8)))) 64) |
| Outputs |
|---|
(*.f64 2 x) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(+.f64 (*.f64 2 x) (pow.f64 x 2)) |
(-.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 0) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 2 (+.f64 x (*.f64 (pow.f64 x 2) 1/2))) |
(*.f64 2 (+.f64 (*.f64 (+.f64 x (pow.f64 x 2)) 1/2) (*.f64 x 1/2))) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x (pow.f64 x 2)) 1/2))) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 1 (+.f64 x (+.f64 x (pow.f64 x 2)))) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 1/2) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 4 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/4)) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4) 1/4) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8) 1/8) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 1/2 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2))))) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (pow.f64 x 2)))) |
(*.f64 (+.f64 x (*.f64 (pow.f64 x 2) 1/2)) 2) |
(*.f64 2 (+.f64 x (*.f64 (pow.f64 x 2) 1/2))) |
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4)) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(*.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1/4) 4) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 1) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (*.f64 2 (+.f64 x (+.f64 x (pow.f64 x 2)))) 2) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 4) 4) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8) 8) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8)) 16) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8))) 32) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 8)))) 64) |
(+.f64 x (+.f64 x (pow.f64 x 2))) |
Compiled 331 to 258 computations (22.1% saved)
6 alts after pruning (1 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 26 | 0 | 26 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 26 | 6 | 32 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.7b | (/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
| ✓ | 58.3b | (-.f64 (exp.f64 x) 1) |
| ✓ | 0.7b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| ✓ | 0.5b | (+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
| ✓ | 0.4b | (+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
| 1.5b | x |
Compiled 59 to 45 computations (23.7% saved)
Compiled 1 to 1 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.7b | (/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
| ✓ | 58.3b | (-.f64 (exp.f64 x) 1) |
| ✓ | 0.7b | (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
| ✓ | 0.5b | (+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
| ✓ | 0.4b | (+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
| 1.5b | x |
Compiled 59 to 45 computations (23.7% saved)
| Inputs |
|---|
x |
(-.f64 (exp.f64 x) 1) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
(+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
| Outputs |
|---|
(+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
3 calls:
| 280.0ms | (exp.f64 x) |
| 4.0ms | x |
| 2.0ms | (-.f64 (exp.f64 x) 1) |
| Error | Segments | Branch |
|---|---|---|
| 0.4b | 1 | x |
| 0.4b | 1 | (-.f64 (exp.f64 x) 1) |
| 0.4b | 1 | (exp.f64 x) |
Compiled 64 to 47 computations (26.6% saved)
| Inputs |
|---|
x |
(-.f64 (exp.f64 x) 1) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
| Outputs |
|---|
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
3 calls:
| 4.0ms | x |
| 2.0ms | (-.f64 (exp.f64 x) 1) |
| 2.0ms | (exp.f64 x) |
| Error | Segments | Branch |
|---|---|---|
| 0.5b | 1 | x |
| 0.5b | 1 | (-.f64 (exp.f64 x) 1) |
| 0.5b | 1 | (exp.f64 x) |
Compiled 45 to 32 computations (28.9% saved)
| Inputs |
|---|
x |
(-.f64 (exp.f64 x) 1) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
(/.f64 (+.f64 x (+.f64 x (pow.f64 x 2))) 2) |
| Outputs |
|---|
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
3 calls:
| 4.0ms | x |
| 3.0ms | (-.f64 (exp.f64 x) 1) |
| 2.0ms | (exp.f64 x) |
| Error | Segments | Branch |
|---|---|---|
| 0.7b | 1 | x |
| 0.7b | 1 | (-.f64 (exp.f64 x) 1) |
| 0.7b | 1 | (exp.f64 x) |
Compiled 32 to 22 computations (31.3% saved)
Total -57.6b remaining (-3856.6%)
Threshold costs -57.6b (-3856.6%)
| Inputs |
|---|
x |
(-.f64 (exp.f64 x) 1) |
| Outputs |
|---|
x |
3 calls:
| 3.0ms | x |
| 2.0ms | (-.f64 (exp.f64 x) 1) |
| 2.0ms | (exp.f64 x) |
| Error | Segments | Branch |
|---|---|---|
| 1.5b | 1 | x |
| 1.5b | 1 | (-.f64 (exp.f64 x) 1) |
| 1.5b | 1 | (exp.f64 x) |
Compiled 16 to 11 computations (31.3% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 112 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
x |
| Outputs |
|---|
(+.f64 x (+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))) |
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))) |
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x) |
x |
Compiled 44 to 34 computations (22.7% saved)
| 1× | egg-herbie |
| 4032× | rational.json-simplify-51 |
| 2700× | rational.json-simplify-35 |
| 2086× | rational.json-simplify-2 |
| 1462× | rational.json-simplify-49 |
| 1124× | rational.json-simplify-48 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 69 | 387 |
| 1 | 133 | 387 |
| 2 | 309 | 387 |
| 3 | 820 | 387 |
| 4 | 1418 | 387 |
| 5 | 2194 | 387 |
| 6 | 2582 | 387 |
| 7 | 2667 | 387 |
| 8 | 2786 | 387 |
| 9 | 2916 | 387 |
| 10 | 3467 | 387 |
| 11 | 3695 | 387 |
| 12 | 3825 | 387 |
| 13 | 3928 | 387 |
| 14 | 3992 | 387 |
| 15 | 4041 | 387 |
| 16 | 4084 | 387 |
| 17 | 4127 | 387 |
| 18 | 4170 | 387 |
| 19 | 5199 | 387 |
| 20 | 5799 | 387 |
| 21 | 5873 | 387 |
| 22 | 5924 | 387 |
| 23 | 5991 | 387 |
| 24 | 6059 | 387 |
| 25 | 6146 | 387 |
| 26 | 6215 | 387 |
| 27 | 6310 | 387 |
| 28 | 6373 | 387 |
| 29 | 6461 | 387 |
| 30 | 6506 | 387 |
| 31 | 6542 | 387 |
| 32 | 6578 | 387 |
| 33 | 6578 | 387 |
| 34 | 6614 | 387 |
| 35 | 6650 | 387 |
| 1× | node limit |
Compiled 115 to 91 computations (20.9% saved)
Compiled 41 to 31 computations (24.4% saved)
Loading profile data...