Time bar (total: 7.1s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 25% | 25% | 74.9% | 0.1% | 0% | 0% | 0% | 5 |
| 28.6% | 25% | 62.4% | 0.1% | 12.5% | 0% | 0% | 6 |
| 42.9% | 37.5% | 50% | 0.1% | 12.5% | 0% | 0% | 7 |
| 55.6% | 46.8% | 37.5% | 0.1% | 15.6% | 0% | 0% | 8 |
| 63.6% | 53.1% | 30.4% | 0.1% | 16.4% | 0% | 0% | 9 |
| 73.9% | 58.5% | 20.7% | 0.1% | 20.7% | 0% | 0% | 10 |
| 79.3% | 62% | 16.2% | 0.1% | 21.7% | 0% | 0% | 11 |
| 85.7% | 65% | 10.8% | 0.1% | 24.1% | 0% | 0% | 12 |
Compiled 12 to 8 computations (33.3% saved)
| 1.3s | 8256× | body | 256 | valid |
| 106.0ms | 478× | body | 256 | infinite |
| 2× | egg-herbie |
| 1106× | rational.json-simplify-2 |
| 918× | rational.json-simplify-44 |
| 904× | rational.json-simplify-37 |
| 824× | rational.json-simplify-47 |
| 824× | rational.json-simplify-39 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 50 |
| 1 | 22 | 38 |
| 2 | 36 | 38 |
| 3 | 77 | 38 |
| 4 | 384 | 38 |
| 5 | 3954 | 38 |
| 6 | 6248 | 38 |
| 7 | 7322 | 38 |
| 8 | 7980 | 38 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
(*.f64 2 (+.f64 (*.f64 y y) (*.f64 y x))) |
| Outputs |
|---|
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 2 (*.f64 x (+.f64 x y))) |
(*.f64 (+.f64 x y) (*.f64 x 2)) |
(*.f64 2 (+.f64 (*.f64 y y) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y y) (*.f64 x y))) |
(*.f64 2 (*.f64 y (+.f64 y x))) |
(*.f64 2 (*.f64 y (+.f64 x y))) |
Compiled 13 to 9 computations (30.8% saved)
| 1× | egg-herbie |
| 1814× | rational.json-simplify-35 |
| 1346× | rational.json-simplify-53 |
| 1020× | rational.json-simplify-39 |
| 866× | rational.json-simplify-59 |
| 654× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 25 |
| 1 | 14 | 19 |
| 2 | 22 | 19 |
| 3 | 43 | 19 |
| 4 | 198 | 19 |
| 5 | 1981 | 19 |
| 6 | 5968 | 19 |
| 7 | 7845 | 19 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| Outputs |
|---|
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 2 (*.f64 x (+.f64 x y))) |
(*.f64 (+.f64 x y) (*.f64 x 2)) |
(*.f64 (+.f64 x y) (*.f64 2 x)) |
Compiled 39 to 21 computations (46.2% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 3 | 2 | 5 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 3 | 3 | 6 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| ▶ | 0.0b | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
Compiled 20 to 13 computations (35% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| ✓ | 0.0b | (+.f64 (*.f64 x x) (*.f64 x y)) |
Compiled 27 to 8 computations (70.4% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (+.f64 (*.f64 x x) (*.f64 x y)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 x x) (*.f64 x y)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 x x) (*.f64 x y)) |
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 x x) (*.f64 x y)) |
| 0.0ms | x | @ | 0 | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| 1× | batch-egg-rewrite |
| 1726× | bool.json-1 |
| 1726× | bool.json-2 |
| 1698× | rational.json-1 |
| 1330× | bool.json-3 |
| 852× | rational.json-simplify-35 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 44 |
| 1 | 91 | 32 |
| 2 | 251 | 32 |
| 3 | 575 | 32 |
| 4 | 1803 | 32 |
| 5 | 5719 | 32 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 x x) (*.f64 x y)) |
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x (+.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x y)) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x x) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 x (+.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x (+.f64 x (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x x) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x x) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x x) (+.f64 x y)) (*.f64 (+.f64 x x) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x x) (+.f64 x y)) (*.f64 (+.f64 x x) (+.f64 x y))))))) |
| 1× | egg-herbie |
| 1278× | rational.json-simplify-2 |
| 1178× | rational.json-simplify-41 |
| 916× | rational.json-simplify-61 |
| 734× | rational.json-simplify-50 |
| 682× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 69 | 1605 |
| 1 | 140 | 1419 |
| 2 | 340 | 1419 |
| 3 | 1104 | 1419 |
| 4 | 2368 | 1419 |
| 5 | 5690 | 1419 |
| 6 | 6409 | 1419 |
| 7 | 7202 | 1419 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y x) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(-.f64 (*.f64 x (+.f64 x y)) 0) |
(*.f64 x (+.f64 x y)) |
(*.f64 (*.f64 x (+.f64 x y)) 1) |
(*.f64 2 (/.f64 (*.f64 x (+.f64 x y)) 2)) |
(*.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 1/2) |
(*.f64 1 (*.f64 x (+.f64 x y))) |
(*.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 1/4) |
(*.f64 (+.f64 x y) x) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 x y)) 4)) |
(*.f64 (*.f64 2 (+.f64 x y)) (/.f64 x 2)) |
(*.f64 1/2 (*.f64 (+.f64 x x) (+.f64 x y))) |
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 x y))) |
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 2) 2) |
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 4) 4) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 x y)) 4)) |
(/.f64 (*.f64 x (+.f64 x y)) 1) |
(/.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 2) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 16) |
(+.f64 (*.f64 x x) (*.f64 x (+.f64 y (+.f64 x y)))) |
(+.f64 (*.f64 x y) (*.f64 x (+.f64 x (+.f64 x y)))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(+.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 0) |
(+.f64 0 (*.f64 (+.f64 x x) (+.f64 x y))) |
(+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 x x)) |
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
(-.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 0) |
(/.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 1) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 2) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 4) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 8) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 16) |
| Outputs |
|---|
(*.f64 y x) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(pow.f64 x 2) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(*.f64 y x) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(+.f64 (*.f64 y x) (pow.f64 x 2)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 y x) 2) |
(*.f64 x (*.f64 y 2)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 y x) 2) |
(*.f64 x (*.f64 y 2)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 (*.f64 y x) 2) |
(*.f64 x (*.f64 y 2)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(-.f64 (*.f64 x (+.f64 x y)) 0) |
(*.f64 x (+.f64 y x)) |
(*.f64 x (+.f64 x y)) |
(*.f64 x (+.f64 y x)) |
(*.f64 (*.f64 x (+.f64 x y)) 1) |
(*.f64 x (+.f64 y x)) |
(*.f64 2 (/.f64 (*.f64 x (+.f64 x y)) 2)) |
(*.f64 x (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 1/2) |
(*.f64 x (+.f64 y x)) |
(*.f64 1 (*.f64 x (+.f64 x y))) |
(*.f64 x (+.f64 y x)) |
(*.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 1/4) |
(*.f64 x (+.f64 y x)) |
(*.f64 (+.f64 x y) x) |
(*.f64 x (+.f64 y x)) |
(*.f64 4 (/.f64 (*.f64 x (+.f64 x y)) 4)) |
(*.f64 x (+.f64 y x)) |
(*.f64 (*.f64 2 (+.f64 x y)) (/.f64 x 2)) |
(*.f64 x (+.f64 y x)) |
(*.f64 1/2 (*.f64 (+.f64 x x) (+.f64 x y))) |
(*.f64 x (+.f64 y x)) |
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 x y))) |
(*.f64 x (+.f64 y x)) |
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 2) 2) |
(*.f64 x (+.f64 y x)) |
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 4) 4) |
(*.f64 x (+.f64 y x)) |
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 x y)) 4)) |
(*.f64 x (+.f64 y x)) |
(/.f64 (*.f64 x (+.f64 x y)) 1) |
(*.f64 x (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 2) |
(*.f64 x (+.f64 y x)) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 4) |
(*.f64 x (+.f64 y x)) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 8) |
(*.f64 x (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 16) |
(*.f64 x (+.f64 y x)) |
(+.f64 (*.f64 x x) (*.f64 x (+.f64 y (+.f64 x y)))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x y) (*.f64 x (+.f64 x (+.f64 x y)))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 0) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 0 (*.f64 (+.f64 x x) (+.f64 x y))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 x x)) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(-.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 0) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 x x) (+.f64 x y)) 1) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 2) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 4) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 8) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 16) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 x y) (*.f64 x 2)) |
Compiled 18 to 9 computations (50% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| 0.0ms | x | @ | 0 | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| 0.0ms | y | @ | inf | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| 1× | batch-egg-rewrite |
| 1920× | bool.json-1 |
| 1920× | bool.json-2 |
| 1144× | rational.json-simplify-35 |
| 1112× | rational.json-1 |
| 1112× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 82 | 19 |
| 2 | 230 | 19 |
| 3 | 479 | 19 |
| 4 | 942 | 19 |
| 5 | 2055 | 19 |
| 6 | 4304 | 19 |
| 7 | 7274 | 19 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 x y) (*.f64 x 2)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 16) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 (+.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 (+.f64 x y) 2)) (*.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 (+.f64 x y) 2)) (*.f64 x (*.f64 (+.f64 x y) 2))))))) |
| 1× | egg-herbie |
| 8440× | rational.json-simplify-41 |
| 4134× | rational.json-simplify-35 |
| 2538× | rational.json-simplify-2 |
| 1266× | rational.json-simplify-53 |
| 832× | rational.json-simplify-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 845 |
| 1 | 99 | 737 |
| 2 | 202 | 737 |
| 3 | 450 | 737 |
| 4 | 1557 | 737 |
| 5 | 2944 | 737 |
| 6 | 3743 | 737 |
| 7 | 3934 | 737 |
| 8 | 4066 | 737 |
| 9 | 4174 | 737 |
| 10 | 4281 | 737 |
| 11 | 4700 | 737 |
| 12 | 4971 | 737 |
| 13 | 5271 | 737 |
| 14 | 5374 | 737 |
| 15 | 5573 | 737 |
| 16 | 5573 | 737 |
| 17 | 5680 | 737 |
| 18 | 5787 | 737 |
| 19 | 5894 | 737 |
| 20 | 6001 | 737 |
| 21 | 6108 | 737 |
| 22 | 6215 | 737 |
| 23 | 6462 | 737 |
| 24 | 6604 | 737 |
| 25 | 6732 | 737 |
| 26 | 6839 | 737 |
| 27 | 6946 | 737 |
| 28 | 6946 | 737 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(+.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(-.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 2) |
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 8)) 4) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 16) 8) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))) 64) |
| Outputs |
|---|
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2))) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(-.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 2) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 8)) 4) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 16) 8) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)) 16) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) 32) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))) 64) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
Compiled 643 to 306 computations (52.4% saved)
6 alts after pruning (4 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 63 | 4 | 67 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 63 | 6 | 69 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| ✓ | 0.0b | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| ▶ | 22.4b | (*.f64 (*.f64 y x) 2) |
| ▶ | 22.4b | (*.f64 y (+.f64 x x)) |
| ▶ | 0.0b | (*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
| ✓ | 0.0b | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
Compiled 58 to 35 computations (39.7% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 y (+.f64 y x)) |
| ✓ | 0.0b | (*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
| ✓ | 0.0b | (+.f64 x (+.f64 y (+.f64 y x))) |
Compiled 28 to 6 computations (78.6% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | (+.f64 x (+.f64 y (+.f64 y x))) |
| 0.0ms | x | @ | -inf | (*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
| 0.0ms | x | @ | 0 | (+.f64 x (+.f64 y (+.f64 y x))) |
| 0.0ms | y | @ | 0 | (+.f64 x (+.f64 y (+.f64 y x))) |
| 0.0ms | x | @ | inf | (*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
| 1× | batch-egg-rewrite |
| 1432× | rational.json-simplify-35 |
| 1416× | bool.json-1 |
| 1416× | bool.json-2 |
| 1382× | rational.json-1 |
| 1382× | rational.json-2 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 57 |
| 1 | 83 | 57 |
| 2 | 231 | 45 |
| 3 | 490 | 45 |
| 4 | 1121 | 45 |
| 5 | 2709 | 45 |
| 6 | 5554 | 45 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (+.f64 y (+.f64 y x))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(+.f64 y (+.f64 y x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 8) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x y) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x y) 2) (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x y) 2) (*.f64 (+.f64 x y) 2)))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 (+.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 (+.f64 x y) 2)) (*.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 (+.f64 x y) 2)) (*.f64 x (*.f64 (+.f64 x y) 2))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 y (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 y y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 y y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 y y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 y y)) (+.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 y y)) (+.f64 x (+.f64 y y))))))) |
| 1× | egg-herbie |
| 4658× | rational.json-simplify-2 |
| 2984× | rational.json-simplify-53 |
| 2284× | rational.json-simplify-35 |
| 988× | rational.json-simplify-1 |
| 762× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 102 | 2111 |
| 1 | 219 | 1787 |
| 2 | 491 | 1787 |
| 3 | 1481 | 1787 |
| 4 | 3063 | 1787 |
| 5 | 3579 | 1787 |
| 6 | 3709 | 1787 |
| 7 | 3814 | 1787 |
| 8 | 3907 | 1787 |
| 9 | 4000 | 1787 |
| 10 | 5048 | 1787 |
| 11 | 5141 | 1787 |
| 12 | 5234 | 1787 |
| 13 | 5327 | 1787 |
| 14 | 5327 | 1787 |
| 15 | 5420 | 1787 |
| 16 | 6506 | 1787 |
| 17 | 7690 | 1787 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(*.f64 2 x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
x |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(*.f64 2 y) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(*.f64 2 y) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(*.f64 2 y) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
x |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
x |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(-.f64 (*.f64 (+.f64 x y) 2) 0) |
(*.f64 (+.f64 x y) 2) |
(*.f64 (*.f64 (+.f64 x y) 2) 1) |
(*.f64 1 (*.f64 (+.f64 x y) 2)) |
(*.f64 2 (+.f64 x y)) |
(*.f64 (*.f64 (+.f64 x y) 4) 1/2) |
(*.f64 4 (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (*.f64 (+.f64 x y) 8) 1/4) |
(*.f64 1/2 (*.f64 (+.f64 x y) 4)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) 4) |
(*.f64 1/4 (*.f64 (+.f64 x y) 8)) |
(/.f64 (*.f64 (+.f64 x y) 2) 1) |
(/.f64 (*.f64 (+.f64 x y) 4) 2) |
(/.f64 (*.f64 (+.f64 x y) 8) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))) 64) |
(+.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(+.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(-.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1) |
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 4)) 2) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 8)) 4) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))))) 64) |
(-.f64 (+.f64 x (+.f64 y y)) 0) |
(*.f64 (+.f64 x (+.f64 y y)) 1) |
(*.f64 1 (+.f64 x (+.f64 y y))) |
(*.f64 2 (+.f64 y (*.f64 x 1/2))) |
(*.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 1/2) |
(*.f64 4 (/.f64 (+.f64 x (+.f64 y y)) 4)) |
(*.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 1/4) |
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4)))) |
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 y y)) 4)) |
(*.f64 (+.f64 y (*.f64 x 1/2)) 2) |
(*.f64 (/.f64 (+.f64 x (+.f64 y y)) 4) 4) |
(/.f64 (+.f64 x (+.f64 y y)) 1) |
(/.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 2) |
(/.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))) 64) |
| Outputs |
|---|
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
x |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(*.f64 2 y) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(*.f64 2 y) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(*.f64 2 y) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
x |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
x |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(+.f64 (*.f64 2 y) x) |
(-.f64 (*.f64 (+.f64 x y) 2) 0) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (+.f64 x y) 2) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 2) 1) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1 (*.f64 (+.f64 x y) 2)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (+.f64 x y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 4) 1/2) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 4 (*.f64 (+.f64 x y) 1/2)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 8) 1/4) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1/2 (*.f64 (+.f64 x y) 4)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) 4) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1/4 (*.f64 (+.f64 x y) 8)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 2) 1) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 4) 2) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 8) 4) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))) 64) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(-.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 4)) 2) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 8)) 4) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))) 8) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) 16) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) 32) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))))) 64) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(-.f64 (+.f64 x (+.f64 y y)) 0) |
(+.f64 y (+.f64 y x)) |
(*.f64 (+.f64 x (+.f64 y y)) 1) |
(+.f64 y (+.f64 y x)) |
(*.f64 1 (+.f64 x (+.f64 y y))) |
(+.f64 y (+.f64 y x)) |
(*.f64 2 (+.f64 y (*.f64 x 1/2))) |
(*.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 1/2) |
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4)))) |
(*.f64 1/2 (+.f64 (*.f64 y 4) (+.f64 x x))) |
(*.f64 4 (/.f64 (+.f64 x (+.f64 y y)) 4)) |
(+.f64 y (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 1/4) |
(+.f64 y (+.f64 y x)) |
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4)))) |
(*.f64 1/2 (+.f64 (*.f64 y 4) (+.f64 x x))) |
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 y y)) 4)) |
(+.f64 y (+.f64 y x)) |
(*.f64 (+.f64 y (*.f64 x 1/2)) 2) |
(*.f64 2 (+.f64 y (*.f64 x 1/2))) |
(*.f64 (/.f64 (+.f64 x (+.f64 y y)) 4) 4) |
(+.f64 y (+.f64 y x)) |
(/.f64 (+.f64 x (+.f64 y y)) 1) |
(+.f64 y (+.f64 y x)) |
(/.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 2) |
(/.f64 (+.f64 (*.f64 y 4) (+.f64 x x)) 2) |
(/.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 4) |
(+.f64 y (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)) 8) |
(+.f64 y (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))) 16) |
(+.f64 y (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) 32) |
(+.f64 y (+.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))) 64) |
(+.f64 y (+.f64 y x)) |
Compiled 12 to 4 computations (66.7% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (*.f64 y x) 2) |
Compiled 13 to 6 computations (53.8% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (*.f64 (*.f64 y x) 2) |
| 0.0ms | y | @ | 0 | (*.f64 (*.f64 y x) 2) |
| 0.0ms | x | @ | 0 | (*.f64 (*.f64 y x) 2) |
| 0.0ms | y | @ | inf | (*.f64 (*.f64 y x) 2) |
| 0.0ms | y | @ | -inf | (*.f64 (*.f64 y x) 2) |
| 1× | batch-egg-rewrite |
| 1552× | bool.json-1 |
| 1552× | bool.json-2 |
| 1510× | rational.json-1 |
| 1510× | rational.json-2 |
| 1510× | rational.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 70 | 13 |
| 2 | 196 | 13 |
| 3 | 409 | 13 |
| 4 | 803 | 13 |
| 5 | 1716 | 13 |
| 6 | 3590 | 13 |
| 7 | 6381 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (*.f64 y x) 2) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 x 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 x x)) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 x x)) (*.f64 y (+.f64 x x))))))) |
| 1× | egg-herbie |
| 8232× | rational.json-simplify-41 |
| 3880× | rational.json-simplify-35 |
| 2792× | rational.json-simplify-2 |
| 1618× | rational.json-simplify-53 |
| 766× | rational.json-simplify-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 35 | 455 |
| 1 | 88 | 455 |
| 2 | 177 | 455 |
| 3 | 402 | 455 |
| 4 | 1278 | 455 |
| 5 | 2288 | 455 |
| 6 | 3059 | 455 |
| 7 | 3171 | 455 |
| 8 | 3257 | 455 |
| 9 | 3340 | 455 |
| 10 | 3421 | 455 |
| 11 | 3502 | 455 |
| 12 | 4068 | 455 |
| 13 | 4418 | 455 |
| 14 | 4655 | 455 |
| 15 | 4831 | 455 |
| 16 | 4912 | 455 |
| 17 | 4993 | 455 |
| 18 | 4993 | 455 |
| 19 | 4993 | 455 |
| 20 | 5074 | 455 |
| 21 | 5309 | 455 |
| 22 | 5461 | 455 |
| 23 | 5564 | 455 |
| 24 | 5660 | 455 |
| 25 | 5748 | 455 |
| 26 | 5829 | 455 |
| 27 | 5910 | 455 |
| 28 | 5991 | 455 |
| 29 | 6072 | 455 |
| 30 | 6153 | 455 |
| 31 | 6234 | 455 |
| 32 | 6516 | 455 |
| 33 | 6597 | 455 |
| 34 | 6678 | 455 |
| 35 | 6678 | 455 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 y x)) |
(+.f64 (*.f64 y (+.f64 x x)) 0) |
(+.f64 0 (*.f64 y (+.f64 x x))) |
(-.f64 (*.f64 y (+.f64 x x)) 0) |
(/.f64 (*.f64 y (+.f64 x x)) 1) |
(/.f64 (*.f64 y (*.f64 x 4)) 2) |
(/.f64 (*.f64 y (*.f64 x 8)) 4) |
(/.f64 (*.f64 2 (*.f64 y (*.f64 x 8))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8))))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8)))))) 64) |
| Outputs |
|---|
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 y (+.f64 x x)) 0) |
(*.f64 2 (*.f64 y x)) |
(+.f64 0 (*.f64 y (+.f64 x x))) |
(*.f64 2 (*.f64 y x)) |
(-.f64 (*.f64 y (+.f64 x x)) 0) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (*.f64 y (+.f64 x x)) 1) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (*.f64 y (*.f64 x 4)) 2) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (*.f64 y (*.f64 x 8)) 4) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 y (*.f64 x 8))) 8) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8)))) 16) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8))))) 32) |
(*.f64 2 (*.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 8)))))) 64) |
(*.f64 2 (*.f64 y x)) |
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 x (+.f64 x (+.f64 x y))) |
| ✓ | 0.0b | (+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| ✓ | 0.0b | (+.f64 x (+.f64 x y)) |
Compiled 33 to 7 computations (78.8% saved)
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| 0.0ms | x | @ | inf | (*.f64 x (+.f64 x (+.f64 x y))) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| 1× | batch-egg-rewrite |
| 1474× | rational.json-simplify-35 |
| 1380× | bool.json-1 |
| 1380× | bool.json-2 |
| 1356× | rational.json-1 |
| 1356× | rational.json-2 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 63 |
| 1 | 91 | 57 |
| 2 | 242 | 51 |
| 3 | 532 | 51 |
| 4 | 1156 | 51 |
| 5 | 2716 | 51 |
| 6 | 5401 | 51 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (+.f64 x y)) |
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
(*.f64 x (+.f64 x (+.f64 x y))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 y (*.f64 x 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 y (+.f64 y (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (+.f64 y (*.f64 x 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 x y)) (+.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 x y)) (+.f64 x (+.f64 x y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 x y) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (*.f64 (+.f64 x y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8 (*.f64 x (+.f64 x y))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (+.f64 x y) 4) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 4) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 x y) 4)) (*.f64 1/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 4)) (*.f64 1/4 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 (+.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 x y) 1/2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 8 (*.f64 x (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8 (*.f64 x (+.f64 x y))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y))))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x y) (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x y) (+.f64 x x)) (*.f64 (+.f64 x y) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x y) (+.f64 x x)) (*.f64 (+.f64 x y) (+.f64 x x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 x (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (*.f64 y 1/2))) (*.f64 x (+.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (+.f64 y (*.f64 x 4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 x (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x (+.f64 x (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x (+.f64 x (+.f64 x y)))))))) |
| 1× | egg-herbie |
| 5734× | rational.json-simplify-41 |
| 2372× | rational.json-simplify-35 |
| 1832× | rational.json-simplify-2 |
| 1266× | rational.json-simplify-53 |
| 854× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 124 | 2453 |
| 1 | 275 | 2327 |
| 2 | 607 | 2327 |
| 3 | 1588 | 2327 |
| 4 | 3486 | 2327 |
| 5 | 3977 | 2327 |
| 6 | 4133 | 2327 |
| 7 | 4250 | 2327 |
| 8 | 4363 | 2327 |
| 9 | 4475 | 2327 |
| 10 | 5658 | 2327 |
| 11 | 5771 | 2327 |
| 12 | 5883 | 2327 |
| 13 | 5883 | 2327 |
| 14 | 5995 | 2327 |
| 1× | node limit |
| Inputs |
|---|
y |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(*.f64 2 x) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(*.f64 2 x) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(*.f64 2 x) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
y |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
y |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(+.f64 (*.f64 2 x) y) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 y x) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(-.f64 (+.f64 x (+.f64 x y)) 0) |
(*.f64 (+.f64 x (+.f64 x y)) 1) |
(*.f64 1 (+.f64 x (+.f64 x y))) |
(*.f64 2 (+.f64 x (*.f64 y 1/2))) |
(*.f64 (+.f64 y (+.f64 y (*.f64 x 4))) 1/2) |
(*.f64 4 (/.f64 (+.f64 x (+.f64 x y)) 4)) |
(*.f64 (*.f64 (+.f64 x (+.f64 x y)) 4) 1/4) |
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x 4)))) |
(*.f64 (+.f64 x (*.f64 y 1/2)) 2) |
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x y)) 4)) |
(*.f64 (/.f64 (+.f64 x (+.f64 x y)) 4) 4) |
(/.f64 (+.f64 x (+.f64 x y)) 1) |
(/.f64 (+.f64 y (+.f64 y (*.f64 x 4))) 2) |
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) 4) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4))))) 64) |
(-.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 0) |
(*.f64 x (*.f64 (+.f64 x y) 2)) |
(*.f64 (+.f64 x y) (+.f64 x x)) |
(*.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 1) |
(*.f64 1 (*.f64 (+.f64 x y) (+.f64 x x))) |
(*.f64 2 (*.f64 x (+.f64 x y))) |
(*.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 1/2) |
(*.f64 (+.f64 x x) (+.f64 x y)) |
(*.f64 (*.f64 (+.f64 x y) 2) x) |
(*.f64 4 (*.f64 x (*.f64 (+.f64 x y) 1/2))) |
(*.f64 (*.f64 8 (*.f64 x (+.f64 x y))) 1/4) |
(*.f64 (*.f64 x 4) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 x 1/2)) |
(*.f64 8 (*.f64 (/.f64 (+.f64 x y) 4) x)) |
(*.f64 8 (*.f64 (/.f64 x 4) (+.f64 x y))) |
(*.f64 (*.f64 2 (*.f64 (+.f64 x y) 4)) (*.f64 1/4 x)) |
(*.f64 (*.f64 2 (*.f64 x 4)) (*.f64 1/4 (+.f64 x y))) |
(*.f64 1/2 (*.f64 x (*.f64 (+.f64 x y) 4))) |
(*.f64 (*.f64 x 1/2) (*.f64 (+.f64 x y) 4)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 4)) |
(*.f64 (*.f64 x (+.f64 x y)) 2) |
(*.f64 (*.f64 x (*.f64 (+.f64 x y) 1/2)) 4) |
(*.f64 1/4 (*.f64 8 (*.f64 x (+.f64 x y)))) |
(/.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 1) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 2) |
(/.f64 (*.f64 8 (*.f64 x (+.f64 x y))) 4) |
(/.f64 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y))))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y))))))) 64) |
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) 0) |
(+.f64 0 (*.f64 x (+.f64 x (+.f64 x y)))) |
(+.f64 (*.f64 x (+.f64 x (*.f64 y 1/2))) (*.f64 x (+.f64 x (*.f64 y 1/2)))) |
(-.f64 (*.f64 x (+.f64 x (+.f64 x y))) 0) |
(/.f64 (*.f64 x (+.f64 x (+.f64 x y))) 1) |
(/.f64 (*.f64 x (+.f64 y (+.f64 y (*.f64 x 4)))) 2) |
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)))))) 64) |
| Outputs |
|---|
y |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
y |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
y |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 x) y) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (*.f64 2 x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 y (*.f64 2 x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 y x) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(*.f64 y x) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(*.f64 y x) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (*.f64 2 (pow.f64 x 2))) |
(-.f64 (+.f64 x (+.f64 x y)) 0) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 (+.f64 x (+.f64 x y)) 1) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 1 (+.f64 x (+.f64 x y))) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 2 (+.f64 x (*.f64 y 1/2))) |
(*.f64 (+.f64 y (+.f64 y (*.f64 x 4))) 1/2) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 4 (/.f64 (+.f64 x (+.f64 x y)) 4)) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 (*.f64 (+.f64 x (+.f64 x y)) 4) 1/4) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x 4)))) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 (+.f64 x (*.f64 y 1/2)) 2) |
(*.f64 2 (+.f64 x (*.f64 y 1/2))) |
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x y)) 4)) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(*.f64 (/.f64 (+.f64 x (+.f64 x y)) 4) 4) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (+.f64 x (+.f64 x y)) 1) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (+.f64 y (+.f64 y (*.f64 x 4))) 2) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) 4) 4) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)) 8) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4))) 16) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)))) 32) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) 4))))) 64) |
(+.f64 y (*.f64 2 x)) |
(+.f64 y (+.f64 x x)) |
(-.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 0) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 x (*.f64 (+.f64 x y) 2)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (+.f64 x y) (+.f64 x x)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 1) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 1 (*.f64 (+.f64 x y) (+.f64 x x))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 2 (*.f64 x (+.f64 x y))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 1/2) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (+.f64 x x) (+.f64 x y)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 x y) 2) x) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 4 (*.f64 x (*.f64 (+.f64 x y) 1/2))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 8 (*.f64 x (+.f64 x y))) 1/4) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 x 4) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 x 1/2)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 8 (*.f64 (/.f64 (+.f64 x y) 4) x)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 8 (*.f64 (/.f64 x 4) (+.f64 x y))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 2 (*.f64 (+.f64 x y) 4)) (*.f64 1/4 x)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 2 (*.f64 x 4)) (*.f64 1/4 (+.f64 x y))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 1/2 (*.f64 x (*.f64 (+.f64 x y) 4))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 x 1/2) (*.f64 (+.f64 x y) 4)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 4)) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 x (+.f64 x y)) 2) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 (*.f64 x (*.f64 (+.f64 x y) 1/2)) 4) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(*.f64 1/4 (*.f64 8 (*.f64 x (+.f64 x y)))) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 (+.f64 x y) (+.f64 x x)) 1) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 4)) 2) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 8 (*.f64 x (+.f64 x y))) 4) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))) 8) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y))))) 16) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))))) 32) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 x (+.f64 x y))))))) 64) |
(*.f64 (+.f64 y x) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) 0) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(+.f64 0 (*.f64 x (+.f64 x (+.f64 x y)))) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(+.f64 (*.f64 x (+.f64 x (*.f64 y 1/2))) (*.f64 x (+.f64 x (*.f64 y 1/2)))) |
(*.f64 (+.f64 x (*.f64 y 1/2)) (+.f64 x x)) |
(*.f64 2 (*.f64 x (+.f64 x (*.f64 y 1/2)))) |
(-.f64 (*.f64 x (+.f64 x (+.f64 x y))) 0) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (*.f64 x (+.f64 x (+.f64 x y))) 1) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (*.f64 x (+.f64 y (+.f64 y (*.f64 x 4)))) 2) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)) 4) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))) 8) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)))) 16) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))))) 32) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x y)) (*.f64 x 4)))))) 64) |
(*.f64 x (+.f64 x (+.f64 y x))) |
(*.f64 x (+.f64 y (+.f64 x x))) |
Compiled 1850 to 947 computations (48.8% saved)
5 alts after pruning (2 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 160 | 2 | 162 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 2 | 3 | 5 |
| Total | 163 | 5 | 168 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| ✓ | 22.4b | (*.f64 y (+.f64 x x)) |
| ▶ | 0.0b | (*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
| ▶ | 31.4b | (*.f64 x (+.f64 x x)) |
| ✓ | 0.0b | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
Compiled 45 to 28 computations (37.8% saved)
Compiled 11 to 4 computations (63.6% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
| ✓ | 0.0b | (+.f64 x (+.f64 (*.f64 2 y) x)) |
Compiled 29 to 17 computations (41.4% saved)
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
| 0.0ms | x | @ | 0 | (+.f64 x (+.f64 (*.f64 2 y) x)) |
| 0.0ms | y | @ | inf | (+.f64 x (+.f64 (*.f64 2 y) x)) |
| 0.0ms | x | @ | 0 | (*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
| 0.0ms | y | @ | -inf | (+.f64 x (+.f64 (*.f64 2 y) x)) |
| 1× | batch-egg-rewrite |
| 1494× | bool.json-1 |
| 1494× | bool.json-2 |
| 1454× | rational.json-1 |
| 1454× | rational.json-2 |
| 1454× | rational.json-4 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 44 |
| 1 | 92 | 44 |
| 2 | 243 | 32 |
| 3 | 485 | 32 |
| 4 | 1037 | 32 |
| 5 | 2495 | 32 |
| 6 | 5546 | 32 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (+.f64 (*.f64 2 y) x)) |
(*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (+.f64 y (*.f64 x 1/2)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y 1/2) (+.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 x y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 (*.f64 y 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 8) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 4 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y 4) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x y) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 2 (+.f64 x y)) (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 2 (+.f64 x y)) (*.f64 2 (+.f64 x y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 x (+.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 2 (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 2 (+.f64 x y))) (*.f64 x (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 2 (+.f64 x y))) (*.f64 x (*.f64 2 (+.f64 x y)))))))) |
| 1× | egg-herbie |
| 4986× | rational.json-simplify-41 |
| 3112× | rational.json-simplify-2 |
| 1818× | rational.json-simplify-53 |
| 1744× | rational.json-simplify-35 |
| 724× | rational.json-simplify-49 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 82 | 1647 |
| 1 | 171 | 1293 |
| 2 | 339 | 1293 |
| 3 | 843 | 1293 |
| 4 | 2242 | 1293 |
| 5 | 3093 | 1293 |
| 6 | 3276 | 1293 |
| 7 | 3394 | 1293 |
| 8 | 3491 | 1293 |
| 9 | 3573 | 1293 |
| 10 | 4703 | 1293 |
| 11 | 4787 | 1293 |
| 12 | 4867 | 1293 |
| 13 | 4947 | 1293 |
| 14 | 5931 | 1293 |
| 15 | 6011 | 1293 |
| 16 | 6011 | 1293 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(*.f64 2 x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(*.f64 2 (*.f64 y x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(-.f64 (*.f64 2 (+.f64 x y)) 0) |
(*.f64 2 (+.f64 x y)) |
(*.f64 2 (+.f64 (+.f64 y (*.f64 x 1/2)) (*.f64 x 1/2))) |
(*.f64 2 (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 x 1/2)))) |
(*.f64 2 (+.f64 (*.f64 y 1/2) (+.f64 x (*.f64 y 1/2)))) |
(*.f64 (*.f64 2 (+.f64 x y)) 1) |
(*.f64 1 (*.f64 2 (+.f64 x y))) |
(*.f64 (*.f64 4 (+.f64 x y)) 1/2) |
(*.f64 4 (/.f64 (+.f64 x y) 2)) |
(*.f64 4 (+.f64 (*.f64 y 1/2) (*.f64 x 1/2))) |
(*.f64 (*.f64 (+.f64 x y) 8) 1/4) |
(*.f64 1/2 (*.f64 4 (+.f64 x y))) |
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 y 4))) |
(*.f64 1/2 (+.f64 (*.f64 y 4) (*.f64 x 4))) |
(*.f64 (+.f64 x y) 2) |
(*.f64 1/4 (*.f64 (+.f64 x y) 8)) |
(*.f64 (/.f64 (+.f64 x y) 2) 4) |
(/.f64 (*.f64 2 (+.f64 x y)) 1) |
(/.f64 (*.f64 4 (+.f64 x y)) 2) |
(/.f64 (*.f64 (+.f64 x y) 8) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32) |
(+.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0) |
(+.f64 0 (*.f64 x (*.f64 2 (+.f64 x y)))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(-.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1) |
(/.f64 (*.f64 4 (*.f64 x (+.f64 x y))) 2) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 8)) 4) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) 32) |
| Outputs |
|---|
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 x) |
(+.f64 x x) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 y) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 2 x) (*.f64 2 y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (pow.f64 x 2)) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(*.f64 2 (*.f64 y x)) |
(*.f64 y (+.f64 x x)) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x))) |
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2))) |
(*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 y x))) |
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2))) |
(-.f64 (*.f64 2 (+.f64 x y)) 0) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (+.f64 x y)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (+.f64 (+.f64 y (*.f64 x 1/2)) (*.f64 x 1/2))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 x 1/2)))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 2 (+.f64 (*.f64 y 1/2) (+.f64 x (*.f64 y 1/2)))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 2 (+.f64 x y)) 1) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1 (*.f64 2 (+.f64 x y))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 4 (+.f64 x y)) 1/2) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 4 (/.f64 (+.f64 x y) 2)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 4 (+.f64 (*.f64 y 1/2) (*.f64 x 1/2))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 8) 1/4) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1/2 (*.f64 4 (+.f64 x y))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 y 4))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1/2 (+.f64 (*.f64 y 4) (*.f64 x 4))) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (+.f64 x y) 2) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 1/4 (*.f64 (+.f64 x y) 8)) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(*.f64 (/.f64 (+.f64 x y) 2) 4) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 2 (+.f64 x y)) 1) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 4 (+.f64 x y)) 2) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 8) 4) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32) |
(+.f64 (*.f64 2 y) (*.f64 2 x)) |
(*.f64 2 (+.f64 y x)) |
(+.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 0 (*.f64 x (*.f64 2 (+.f64 x y)))) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y))) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(-.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 4 (*.f64 x (+.f64 x y))) 2) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 8)) 4) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))) 8) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) 16) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8)))) (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 x y) 8))))) 32) |
(*.f64 x (*.f64 2 (+.f64 y x))) |
(*.f64 (+.f64 y x) (*.f64 2 x)) |
(*.f64 2 (*.f64 x (+.f64 y x))) |
Compiled 473 to 281 computations (40.6% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 49 | 0 | 49 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 49 | 5 | 54 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 (+.f64 x y) (*.f64 x 2)) |
| ✓ | 22.4b | (*.f64 y (+.f64 x x)) |
| ✓ | 0.0b | (*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
| ✓ | 31.4b | (*.f64 x (+.f64 x x)) |
| ✓ | 0.0b | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
Compiled 45 to 28 computations (37.8% saved)
| Inputs |
|---|
(*.f64 x (+.f64 x x)) |
(*.f64 y (+.f64 x x)) |
(*.f64 (*.f64 y x) 2) |
(*.f64 (+.f64 x y) (*.f64 x 2)) |
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
(*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y)) |
| Outputs |
|---|
(*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
4 calls:
| 7.0ms | y |
| 5.0ms | x |
| 5.0ms | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| 4.0ms | (+.f64 (*.f64 x x) (*.f64 x y)) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| 0.0b | 1 | (+.f64 (*.f64 x x) (*.f64 x y)) |
Compiled 88 to 45 computations (48.9% saved)
| Inputs |
|---|
(*.f64 x (+.f64 x x)) |
(*.f64 y (+.f64 x x)) |
(*.f64 (*.f64 y x) 2) |
(*.f64 (+.f64 x y) (*.f64 x 2)) |
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
(*.f64 x (+.f64 x (+.f64 y (+.f64 y x)))) |
| Outputs |
|---|
(*.f64 (+.f64 x y) (*.f64 x 2)) |
4 calls:
| 5.0ms | x |
| 4.0ms | y |
| 4.0ms | (+.f64 (*.f64 x x) (*.f64 x y)) |
| 4.0ms | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | (*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y))) |
| 0.0b | 1 | (+.f64 (*.f64 x x) (*.f64 x y)) |
Compiled 68 to 37 computations (45.6% saved)
Total -46.3b remaining (-732.5%)
Threshold costs -46.3b (-732.5%)
| Inputs |
|---|
(*.f64 x (+.f64 x x)) |
(*.f64 y (+.f64 x x)) |
(*.f64 (*.f64 y x) 2) |
| Outputs |
|---|
(*.f64 y (+.f64 x x)) |
(*.f64 x (+.f64 x x)) |
(*.f64 y (+.f64 x x)) |
(*.f64 x (+.f64 x x)) |
(*.f64 y (+.f64 x x)) |
2 calls:
| 15.0ms | y |
| 11.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 11.4b | 3 | x |
| 6.3b | 5 | y |
Compiled 23 to 12 computations (47.8% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 4.388258655951177e-62 | 4.575677811543141e-62 |
| 12.0ms | -1.1241299107270843e-89 | -1.4330890743911046e-92 |
| 13.0ms | -1.8217346877212136e-29 | -5.1767991099931475e-33 |
| 11.0ms | -1.5121228821375215e+43 | -7.120863575786126e+40 |
| 32.0ms | 368× | body | 256 | valid |
Compiled 384 to 241 computations (37.2% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 158 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
(*.f64 (+.f64 x y) (*.f64 x 2)) |
(if (<=.f64 y -71999999999999999285837437599316382318592) (*.f64 y (+.f64 x x)) (if (<=.f64 y -1248841731117715/713623846352979940529142984724747568191373312) (*.f64 x (+.f64 x x)) (if (<=.f64 y -8485944879163265/4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109248) (*.f64 y (+.f64 x x)) (if (<=.f64 y 5210644015679229/115792089237316195423570985008687907853269984665640564039457584007913129639936) (*.f64 x (+.f64 x x)) (*.f64 y (+.f64 x x)))))) |
(*.f64 x (+.f64 x x)) |
| Outputs |
|---|
(*.f64 x (+.f64 x (+.f64 (*.f64 2 y) x))) |
(*.f64 (+.f64 x y) (*.f64 x 2)) |
(if (<=.f64 y -71999999999999999285837437599316382318592) (*.f64 y (+.f64 x x)) (if (<=.f64 y -1248841731117715/713623846352979940529142984724747568191373312) (*.f64 x (+.f64 x x)) (if (<=.f64 y -8485944879163265/4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109248) (*.f64 y (+.f64 x x)) (if (<=.f64 y 5210644015679229/115792089237316195423570985008687907853269984665640564039457584007913129639936) (*.f64 x (+.f64 x x)) (*.f64 y (+.f64 x x)))))) |
(*.f64 x (+.f64 x x)) |
Compiled 70 to 34 computations (51.4% saved)
| 1× | egg-herbie |
| 1278× | rational.json-simplify-2 |
| 1178× | rational.json-simplify-41 |
| 916× | rational.json-simplify-61 |
| 734× | rational.json-simplify-50 |
| 682× | rational.json-simplify-51 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 69 | 1605 |
| 1 | 140 | 1419 |
| 2 | 340 | 1419 |
| 3 | 1104 | 1419 |
| 4 | 2368 | 1419 |
| 5 | 5690 | 1419 |
| 6 | 6409 | 1419 |
| 7 | 7202 | 1419 |
| 1× | node limit |
Compiled 42 to 14 computations (66.7% saved)
Compiled 64 to 26 computations (59.4% saved)
Loading profile data...