Time bar (total: 4.2s)
| 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 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 6 |
| 12.5% | 12.5% | 87.4% | 0.1% | 0% | 0% | 0% | 7 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 8 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 9 |
| 28.1% | 28.1% | 71.8% | 0.1% | 0% | 0% | 0% | 10 |
| 32.8% | 32.8% | 67.1% | 0.1% | 0% | 0% | 0% | 11 |
| 39.8% | 39.8% | 60.1% | 0.1% | 0% | 0% | 0% | 12 |
Compiled 19 to 10 computations (47.4% saved)
| 1.2s | 6278× | body | 256 | valid |
| 410.0ms | 865× | body | 1024 | valid |
| 286.0ms | 511× | body | 2048 | valid |
| 260.0ms | 202× | body | 512 | infinite |
| 176.0ms | 1813× | body | 256 | infinite |
| 152.0ms | 602× | body | 512 | valid |
| 36.0ms | 151× | body | 1024 | infinite |
| 2× | egg-herbie |
| 1098× | rational_best_oopsla_all_46_json_45_simplify-89 |
| 1034× | rational_best_oopsla_all_46_json_45_simplify-7 |
| 978× | rational_best_oopsla_all_46_json_45_simplify-23 |
| 976× | rational_best_oopsla_all_46_json_45_simplify-102 |
| 928× | rational_best_oopsla_all_46_json_45_simplify-74 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 25 | 148 |
| 1 | 81 | 124 |
| 2 | 253 | 124 |
| 3 | 1107 | 100 |
| 4 | 5762 | 100 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
(-.f64 (+.f64 (-.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x x)) (*.f64 x z)) |
(-.f64 (+.f64 (-.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y y)) (*.f64 y x)) |
(-.f64 (+.f64 (-.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z z)) (*.f64 z y)) |
| Outputs |
|---|
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
(-.f64 (+.f64 (*.f64 y y) (*.f64 y (-.f64 x y))) (*.f64 y z)) |
(-.f64 (*.f64 y (+.f64 y (-.f64 x y))) (*.f64 y z)) |
(+.f64 (*.f64 y y) (*.f64 y (-.f64 (-.f64 x y) z))) |
(*.f64 y (+.f64 y (-.f64 (-.f64 x z) y))) |
(-.f64 (+.f64 (-.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x x)) (*.f64 x z)) |
(+.f64 (*.f64 x x) (-.f64 (*.f64 x (-.f64 y x)) (*.f64 x z))) |
(-.f64 (*.f64 x (+.f64 x (-.f64 y x))) (*.f64 x z)) |
(+.f64 (*.f64 x (-.f64 y x)) (*.f64 x (-.f64 x z))) |
(*.f64 x (+.f64 (-.f64 y x) (-.f64 x z))) |
(-.f64 (+.f64 (-.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y y)) (*.f64 y x)) |
(-.f64 (+.f64 (*.f64 y y) (*.f64 y (-.f64 z y))) (*.f64 x y)) |
(-.f64 (*.f64 y (+.f64 y (-.f64 z y))) (*.f64 x y)) |
(+.f64 (*.f64 y (-.f64 z y)) (*.f64 y (-.f64 y x))) |
(*.f64 y (+.f64 y (-.f64 (-.f64 z x) y))) |
(-.f64 (+.f64 (-.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z z)) (*.f64 z y)) |
(+.f64 (*.f64 z z) (-.f64 (*.f64 z (-.f64 x z)) (*.f64 y z))) |
(-.f64 (*.f64 z (+.f64 z (-.f64 x z))) (*.f64 y z)) |
(*.f64 z (+.f64 z (-.f64 (-.f64 x z) y))) |
Compiled 21 to 12 computations (42.9% saved)
| 1× | egg-herbie |
| 1578× | rational_best_oopsla_all_46_json_45_simplify-102 |
| 1014× | rational_best_oopsla_all_46_json_45_simplify-93 |
| 900× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 734× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 566× | rational_best_oopsla_all_46_json_45_simplify-10 |
Useful iterations: 5 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 37 |
| 1 | 31 | 31 |
| 2 | 100 | 31 |
| 3 | 391 | 25 |
| 4 | 1857 | 19 |
| 5 | 5225 | 13 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
| Outputs |
|---|
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
(+.f64 (*.f64 y y) (-.f64 (*.f64 y (-.f64 x y)) (*.f64 y z))) |
(-.f64 (*.f64 y (+.f64 y (-.f64 x y))) (*.f64 y z)) |
(+.f64 (*.f64 y (-.f64 x y)) (*.f64 y (-.f64 y z))) |
(*.f64 y (+.f64 y (-.f64 (-.f64 x z) y))) |
(+.f64 (*.f64 y (-.f64 x z)) 0) |
(*.f64 y (-.f64 x z)) |
Compiled 74 to 26 computations (64.9% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 5 | 2 | 7 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 6 | 2 | 8 |
| Status | Error | Program |
|---|---|---|
| ▶ | 8.5b | (-.f64 (*.f64 y (+.f64 y (-.f64 x y))) (*.f64 y z)) |
| ▶ | 0.0b | (*.f64 y (-.f64 x z)) |
Compiled 22 to 13 computations (40.9% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (*.f64 y (-.f64 x z)) |
Compiled 14 to 5 computations (64.3% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | -inf | (*.f64 y (-.f64 x z)) |
| 0.0ms | y | @ | 0 | (*.f64 y (-.f64 x z)) |
| 0.0ms | y | @ | -inf | (*.f64 y (-.f64 x z)) |
| 0.0ms | x | @ | inf | (*.f64 y (-.f64 x z)) |
| 0.0ms | y | @ | inf | (*.f64 y (-.f64 x z)) |
| 1× | batch-egg-rewrite |
| 1566× | rational_best_oopsla_all_46_json-2 |
| 1566× | rational_best_oopsla_all_46_json-1 |
| 1566× | rational_best_oopsla_all_46_json-4 |
| 1566× | rational_best_oopsla_all_46_json-3 |
| 1000× | rational_best_oopsla_all_46_json_45_simplify-72 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 49 | 13 |
| 2 | 193 | 13 |
| 3 | 846 | 13 |
| 4 | 3587 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (-.f64 x z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 (/.f64 y y) (*.f64 (-.f64 x z) (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (neg.f64 z)) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) y))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 (/.f64 y y) (*.f64 (-.f64 x z) (/.f64 y y)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (neg.f64 z)) (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 y (-.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (-.f64 0 (*.f64 (*.f64 y z) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (neg.f64 z)) (*.f64 y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (neg.f64 z)) (-.f64 0 (*.f64 (*.f64 y (neg.f64 x)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y x) (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y (neg.f64 z)) (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y z) -1) (*.f64 y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y (neg.f64 x)) -1) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y (-.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y (neg.f64 z)) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (-.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x z) (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (-.f64 x z) (/.f64 y y)) (*.f64 (-.f64 x z) (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 y y) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (/.f64 (-.f64 x z) y)) (*.f64 y (/.f64 (-.f64 x z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (-.f64 z x))) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 z x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (-.f64 z x))))))) |
| 1× | egg-herbie |
| 1564× | rational_best_oopsla_all_46_json_45_simplify-89 |
| 1232× | rational_best_oopsla_all_46_json_45_simplify-74 |
| 1102× | rational_best_oopsla_all_46_json_45_simplify-24 |
| 762× | rational_best_oopsla_all_46_json_45_simplify-10 |
| 738× | rational_best_oopsla_all_46_json_45_simplify-30 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 100 | 1509 |
| 1 | 350 | 1173 |
| 2 | 1547 | 949 |
| 3 | 6911 | 949 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y (-.f64 x z)) 0) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))))) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) y)))) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 (/.f64 y y) (*.f64 (-.f64 x z) (/.f64 y y))))) |
(+.f64 0 (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (neg.f64 z))) |
(+.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) y))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 0 (*.f64 (/.f64 y y) (*.f64 (-.f64 x z) (/.f64 y y)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (neg.f64 z)) (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))) |
(-.f64 (*.f64 y (-.f64 x z)) 0) |
(-.f64 0 (*.f64 y (-.f64 z x))) |
(-.f64 (*.f64 y x) (*.f64 y z)) |
(-.f64 (*.f64 y x) (-.f64 0 (*.f64 (*.f64 y z) -1))) |
(-.f64 (*.f64 y (neg.f64 z)) (*.f64 y (neg.f64 x))) |
(-.f64 (*.f64 y (neg.f64 z)) (-.f64 0 (*.f64 (*.f64 y (neg.f64 x)) -1))) |
(-.f64 (*.f64 (*.f64 y x) (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y z))) |
(-.f64 (*.f64 (*.f64 y (neg.f64 z)) (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y (neg.f64 x)))) |
(-.f64 (*.f64 (*.f64 y z) -1) (*.f64 y (neg.f64 x))) |
(-.f64 (*.f64 (*.f64 y (neg.f64 x)) -1) (*.f64 y z)) |
(-.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y (-.f64 z x)))) |
(-.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y z))) |
(-.f64 (*.f64 (*.f64 y (neg.f64 z)) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y (neg.f64 x)))) |
(-.f64 (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) z)) |
(-.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (-.f64 z x))) |
(/.f64 (*.f64 y (-.f64 x z)) 1) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 y y)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x z) (-.f64 x z))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (-.f64 x z) (/.f64 y y)) (*.f64 (-.f64 x z) (/.f64 y y)))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 y y) (/.f64 y y))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (/.f64 (-.f64 x z) y)) (*.f64 y (/.f64 (-.f64 x z) y)))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (-.f64 z x))) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (-.f64 z x))))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))) |
(/.f64 (*.f64 y (-.f64 z x)) -1) |
(neg.f64 (*.f64 y (-.f64 z x))) |
| Outputs |
|---|
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y z)) |
(neg.f64 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) 0) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) y)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 0 (*.f64 (/.f64 y y) (*.f64 (-.f64 x z) (/.f64 y y))))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 0 (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (neg.f64 z)) (*.f64 y x)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (neg.f64 z))) |
(*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (+.f64 x (neg.f64 z))) |
(+.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) y))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 0 (*.f64 (/.f64 y y) (*.f64 (-.f64 x z) (/.f64 y y)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (neg.f64 z)) (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))) |
(*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (+.f64 x (neg.f64 z))) |
(-.f64 (*.f64 y (-.f64 x z)) 0) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 0 (*.f64 y (-.f64 z x))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 y x) (*.f64 y z)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 y x) (-.f64 0 (*.f64 (*.f64 y z) -1))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 y (neg.f64 z)) (*.f64 y (neg.f64 x))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 y (neg.f64 z)) (-.f64 0 (*.f64 (*.f64 y (neg.f64 x)) -1))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 (*.f64 y x) (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 (*.f64 y (neg.f64 z)) (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y (neg.f64 x)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 (*.f64 y z) -1) (*.f64 y (neg.f64 x))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 (*.f64 y (neg.f64 x)) -1) (*.f64 y z)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y (-.f64 z x)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 (*.f64 y (neg.f64 z)) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) (*.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (*.f64 y (neg.f64 x)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 x (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) z)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 0 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) (*.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (-.f64 z x))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) 1) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 y y)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x z) (-.f64 x z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (-.f64 x z) (/.f64 y y)) (*.f64 (-.f64 x z) (/.f64 y y)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 y y) (/.f64 y y))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))) (/.f64 (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z))))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (/.f64 (-.f64 x z) y)) (*.f64 y (/.f64 (-.f64 x z) y)))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (-.f64 z x))) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (-.f64 z x))))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 (-.f64 x z) (*.f64 (/.f64 y y) (/.f64 y y))) (*.f64 (-.f64 x z) (*.f64 (/.f64 y y) (/.f64 y y))))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))) (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 z x)) -1) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(neg.f64 (*.f64 y (-.f64 z x))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (+.f64 x (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 2.2b | (+.f64 y (-.f64 x y)) |
Compiled 35 to 8 computations (77.1% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | (+.f64 y (-.f64 x y)) |
| 0.0ms | y | @ | 0 | (+.f64 y (-.f64 x y)) |
| 0.0ms | x | @ | -inf | (+.f64 y (-.f64 x y)) |
| 0.0ms | y | @ | inf | (+.f64 y (-.f64 x y)) |
| 0.0ms | y | @ | -inf | (+.f64 y (-.f64 x y)) |
| 1× | batch-egg-rewrite |
| 1384× | rational_best_oopsla_all_46_json_45_simplify-13 |
| 1248× | rational_best_oopsla_all_46_json_45_simplify-37 |
| 818× | rational_best_oopsla_all_46_json_45_simplify-23 |
| 630× | rational_best_oopsla_all_46_json-2 |
| 630× | rational_best_oopsla_all_46_json-1 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 13 |
| 1 | 35 | 1 |
| 2 | 90 | 1 |
| 3 | 270 | 1 |
| 4 | 1222 | 1 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 y (-.f64 x y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 y (-.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 x 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 x (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 x (*.f64 x (/.f64 0 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 x (*.f64 (*.f64 x (/.f64 1 x)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 x (*.f64 (neg.f64 (/.f64 x x)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 x y) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y x) y)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y x) (-.f64 (+.f64 y y) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y y) (+.f64 y (-.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (neg.f64 y) (-.f64 (neg.f64 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (+.f64 y x)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (/.f64 x x)) (*.f64 1 (*.f64 (/.f64 x x) (-.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 y (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 1 (*.f64 y (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x y) (/.f64 x x)) (*.f64 (/.f64 x x) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x y) (/.f64 x x)) (*.f64 (neg.f64 (/.f64 x x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (neg.f64 y) (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 (neg.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y (/.f64 x x)) (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (-.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x y) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (neg.f64 y) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 (neg.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y (/.f64 x x)) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (/.f64 x x) (-.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (*.f64 y (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (-.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x y) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (neg.f64 y) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (-.f64 (neg.f64 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (*.f64 y (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (neg.f64 (/.f64 x x))) (*.f64 (neg.f64 (/.f64 x x)) (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (+.f64 y y) y) (-.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 y y) (neg.f64 y)) (-.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 x (/.f64 (-.f64 x y) (-.f64 x y))) (neg.f64 y)) (*.f64 y (/.f64 (-.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 (/.f64 (-.f64 x y) (-.f64 x y)) (neg.f64 y)) (neg.f64 y)) (*.f64 (neg.f64 x) (/.f64 (-.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (neg.f64 y) (+.f64 y y)) (-.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (/.f64 (-.f64 x y) (-.f64 x y))) y) (*.f64 y (/.f64 (-.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (/.f64 (-.f64 x y) (-.f64 x y)) (neg.f64 y)) y) (*.f64 (neg.f64 x) (/.f64 (-.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (-.f64 (neg.f64 y) y) (+.f64 y y)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 x x) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 (/.f64 x x) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (/.f64 x x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (*.f64 x (/.f64 1 x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (*.f64 (/.f64 x x) (/.f64 x x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 x (/.f64 (/.f64 x x) x)) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (/.f64 1 (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (+.f64 0 (*.f64 x (/.f64 1 (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 -1 (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (/.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 (neg.f64 (/.f64 x x)) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (*.f64 x (/.f64 1 (/.f64 x x))) (/.f64 (/.f64 x x) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (neg.f64 (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (*.f64 -1 (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (*.f64 (neg.f64 (/.f64 x x)) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (-.f64 (/.f64 0 x) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (-.f64 0 (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (-.f64 0 (*.f64 (/.f64 x x) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 1 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x x) (/.f64 x x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 x x) (/.f64 x x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (/.f64 x x) x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 1 (/.f64 x x))) (/.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 x x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 x x)) (*.f64 (neg.f64 x) (/.f64 (/.f64 x x) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (/.f64 x x) (/.f64 x x))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (neg.f64 (/.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x (/.f64 1 x))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 (/.f64 x x) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x . x))))) |
| 1× | egg-herbie |
| 1094× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 840× | rational_best_oopsla_all_46_json_45_simplify-89 |
| 734× | rational_best_oopsla_all_46_json_45_simplify-10 |
| 720× | rational_best_oopsla_all_46_json_45_simplify-23 |
| 690× | rational_best_oopsla_all_46_json_45_simplify-74 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 211 | 365 |
| 1 | 874 | 269 |
| 2 | 4168 | 269 |
| 3 | 7073 | 269 |
| 1× | node limit |
| Inputs |
|---|
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
(-.f64 y (-.f64 y x)) |
(-.f64 x 0) |
(-.f64 x (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) 0)) |
(-.f64 x (*.f64 x (/.f64 0 x))) |
(-.f64 x (*.f64 (*.f64 x (/.f64 1 x)) 0)) |
(-.f64 x (*.f64 (neg.f64 (/.f64 x x)) 0)) |
(-.f64 (-.f64 x y) (neg.f64 y)) |
(-.f64 0 (neg.f64 x)) |
(-.f64 (+.f64 y x) y) |
(-.f64 (+.f64 y x) (-.f64 (+.f64 y y) y)) |
(-.f64 (+.f64 y y) (+.f64 y (-.f64 y x))) |
(-.f64 (neg.f64 y) (-.f64 (neg.f64 x) y)) |
(-.f64 (+.f64 y (+.f64 y x)) (+.f64 y y)) |
(-.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 y x))) |
(-.f64 (*.f64 y (/.f64 x x)) (*.f64 1 (*.f64 (/.f64 x x) (-.f64 y x)))) |
(-.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 y (/.f64 x x))) |
(-.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 1 (*.f64 y (/.f64 x x)))) |
(-.f64 (*.f64 (-.f64 x y) (/.f64 x x)) (*.f64 (/.f64 x x) (neg.f64 y))) |
(-.f64 (*.f64 (-.f64 x y) (/.f64 x x)) (*.f64 (neg.f64 (/.f64 x x)) y)) |
(-.f64 (*.f64 (neg.f64 y) (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 (neg.f64 x) y))) |
(-.f64 (*.f64 (*.f64 y (/.f64 x x)) (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (-.f64 y x)))) |
(-.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))) |
(-.f64 (*.f64 y (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 y x))) |
(-.f64 (*.f64 (-.f64 x y) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (neg.f64 y))) |
(-.f64 (*.f64 0 (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (neg.f64 x))) |
(-.f64 (*.f64 (+.f64 y x) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) y)) |
(-.f64 (*.f64 (neg.f64 y) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 (neg.f64 x) y))) |
(-.f64 (*.f64 (*.f64 y (/.f64 x x)) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (/.f64 x x) (-.f64 y x)))) |
(-.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (*.f64 y (/.f64 x x)))) |
(-.f64 (*.f64 y (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (-.f64 y x))) |
(-.f64 (*.f64 (-.f64 x y) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (neg.f64 y))) |
(-.f64 (*.f64 0 (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (neg.f64 x))) |
(-.f64 (*.f64 (+.f64 y x) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) y)) |
(-.f64 (*.f64 (neg.f64 y) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (-.f64 (neg.f64 x) y))) |
(-.f64 (*.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 y x)))) |
(-.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (*.f64 y (/.f64 x x)))) |
(-.f64 (*.f64 y (neg.f64 (/.f64 x x))) (*.f64 (neg.f64 (/.f64 x x)) (+.f64 y x))) |
(-.f64 (-.f64 (+.f64 y y) y) (-.f64 y x)) |
(-.f64 (+.f64 (+.f64 y y) (neg.f64 y)) (-.f64 y x)) |
(-.f64 (-.f64 (*.f64 x (/.f64 (-.f64 x y) (-.f64 x y))) (neg.f64 y)) (*.f64 y (/.f64 (-.f64 x y) (-.f64 x y)))) |
(-.f64 (-.f64 (*.f64 (/.f64 (-.f64 x y) (-.f64 x y)) (neg.f64 y)) (neg.f64 y)) (*.f64 (neg.f64 x) (/.f64 (-.f64 x y) (-.f64 x y)))) |
(-.f64 (+.f64 (neg.f64 y) (+.f64 y y)) (-.f64 y x)) |
(-.f64 (+.f64 (*.f64 x (/.f64 (-.f64 x y) (-.f64 x y))) y) (*.f64 y (/.f64 (-.f64 x y) (-.f64 x y)))) |
(-.f64 (+.f64 (*.f64 (/.f64 (-.f64 x y) (-.f64 x y)) (neg.f64 y)) y) (*.f64 (neg.f64 x) (/.f64 (-.f64 x y) (-.f64 x y)))) |
(-.f64 (+.f64 (-.f64 (neg.f64 y) y) (+.f64 y y)) (neg.f64 x)) |
(*.f64 x 1) |
(*.f64 x (/.f64 x x)) |
(*.f64 x (*.f64 x (/.f64 1 x))) |
(*.f64 x (*.f64 (/.f64 x x) (/.f64 x x))) |
(*.f64 x (/.f64 (/.f64 x x) (/.f64 x x))) |
(*.f64 x (*.f64 x (/.f64 (/.f64 x x) x))) |
(*.f64 x (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x)))) |
(*.f64 x (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x)))) |
(*.f64 x (*.f64 x (/.f64 (*.f64 x (/.f64 1 x)) x))) |
(*.f64 x (*.f64 x (/.f64 (*.f64 (/.f64 x x) (/.f64 x x)) x))) |
(*.f64 x (*.f64 (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))) (/.f64 x x))) |
(*.f64 x (*.f64 (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))) (/.f64 x x))) |
(*.f64 x (*.f64 (*.f64 x (/.f64 (/.f64 x x) x)) (/.f64 x x))) |
(*.f64 1 x) |
(*.f64 (/.f64 x x) x) |
(*.f64 (/.f64 x x) (*.f64 x (/.f64 1 (/.f64 x x)))) |
(*.f64 (/.f64 x x) (+.f64 0 (*.f64 x (/.f64 1 (/.f64 x x))))) |
(*.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 -1 (/.f64 x x)))) |
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (/.f64 x x)))) |
(*.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 (neg.f64 (/.f64 x x)) (/.f64 x x)))) |
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (/.f64 1 (/.f64 x x))) (/.f64 (/.f64 x x) (/.f64 x x)))) |
(*.f64 (neg.f64 x) -1) |
(*.f64 (neg.f64 x) (neg.f64 (/.f64 x x))) |
(*.f64 (neg.f64 x) (*.f64 -1 (/.f64 x x))) |
(*.f64 (neg.f64 x) (*.f64 (neg.f64 (/.f64 x x)) (/.f64 x x))) |
(*.f64 (neg.f64 x) (-.f64 (/.f64 0 x) (/.f64 x x))) |
(*.f64 (neg.f64 x) (-.f64 0 (*.f64 x (/.f64 1 x)))) |
(*.f64 (neg.f64 x) (-.f64 0 (*.f64 (/.f64 x x) (/.f64 x x)))) |
(*.f64 (*.f64 x (/.f64 1 x)) x) |
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 1 x))))) |
(*.f64 -1 (neg.f64 x)) |
(*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) x) |
(*.f64 (/.f64 (/.f64 x x) (/.f64 x x)) x) |
(*.f64 (*.f64 x (/.f64 (/.f64 x x) x)) x) |
(*.f64 (*.f64 x (/.f64 1 (/.f64 x x))) (/.f64 x x)) |
(*.f64 (neg.f64 (/.f64 x x)) (neg.f64 x)) |
(*.f64 (neg.f64 (/.f64 x x)) (*.f64 (neg.f64 x) (/.f64 (/.f64 x x) (/.f64 x x)))) |
(*.f64 (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))) x) |
(*.f64 (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))) x) |
(*.f64 (neg.f64 (*.f64 (/.f64 x x) (/.f64 x x))) (neg.f64 x)) |
(*.f64 (neg.f64 (neg.f64 (/.f64 x x))) x) |
(*.f64 (neg.f64 (*.f64 x (/.f64 1 x))) (neg.f64 x)) |
(/.f64 x 1) |
(/.f64 x (/.f64 x x)) |
(/.f64 x (/.f64 (/.f64 x x) (/.f64 x x))) |
(/.f64 x (/.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 1 x)))) |
(/.f64 (neg.f64 x) -1) |
(neg.f64 (neg.f64 x)) |
| Outputs |
|---|
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
(-.f64 y (-.f64 y x)) |
x |
(-.f64 x 0) |
x |
(-.f64 x (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) 0)) |
x |
(-.f64 x (*.f64 x (/.f64 0 x))) |
x |
(-.f64 x (*.f64 (*.f64 x (/.f64 1 x)) 0)) |
x |
(-.f64 x (*.f64 (neg.f64 (/.f64 x x)) 0)) |
x |
(-.f64 (-.f64 x y) (neg.f64 y)) |
x |
(-.f64 0 (neg.f64 x)) |
x |
(-.f64 (+.f64 y x) y) |
x |
(-.f64 (+.f64 y x) (-.f64 (+.f64 y y) y)) |
x |
(-.f64 (+.f64 y y) (+.f64 y (-.f64 y x))) |
x |
(-.f64 (neg.f64 y) (-.f64 (neg.f64 x) y)) |
x |
(-.f64 (+.f64 y (+.f64 y x)) (+.f64 y y)) |
x |
(-.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 y x))) |
x |
(-.f64 (*.f64 y (/.f64 x x)) (*.f64 1 (*.f64 (/.f64 x x) (-.f64 y x)))) |
x |
(-.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 y (/.f64 x x))) |
x |
(-.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 1 (*.f64 y (/.f64 x x)))) |
x |
(-.f64 (*.f64 (-.f64 x y) (/.f64 x x)) (*.f64 (/.f64 x x) (neg.f64 y))) |
x |
(-.f64 (*.f64 (-.f64 x y) (/.f64 x x)) (*.f64 (neg.f64 (/.f64 x x)) y)) |
x |
(-.f64 (*.f64 (neg.f64 y) (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 (neg.f64 x) y))) |
x |
(-.f64 (*.f64 (*.f64 y (/.f64 x x)) (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (-.f64 y x)))) |
x |
(-.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))) |
x |
(-.f64 (*.f64 y (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 y x))) |
x |
(-.f64 (*.f64 (-.f64 x y) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (neg.f64 y))) |
x |
(-.f64 (*.f64 0 (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (neg.f64 x))) |
x |
(-.f64 (*.f64 (+.f64 y x) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) y)) |
x |
(-.f64 (*.f64 (neg.f64 y) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 (neg.f64 x) y))) |
x |
(-.f64 (*.f64 (*.f64 y (/.f64 x x)) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (/.f64 x x) (-.f64 y x)))) |
x |
(-.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 x (/.f64 1 x))) (*.f64 (*.f64 x (/.f64 1 x)) (*.f64 y (/.f64 x x)))) |
x |
(-.f64 (*.f64 y (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (-.f64 y x))) |
x |
(-.f64 (*.f64 (-.f64 x y) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (neg.f64 y))) |
x |
(-.f64 (*.f64 0 (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (neg.f64 x))) |
x |
(-.f64 (*.f64 (+.f64 y x) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) y)) |
x |
(-.f64 (*.f64 (neg.f64 y) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (-.f64 (neg.f64 x) y))) |
x |
(-.f64 (*.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (*.f64 (/.f64 x x) (-.f64 y x)))) |
x |
(-.f64 (*.f64 (*.f64 (+.f64 y x) (/.f64 x x)) (*.f64 (/.f64 x x) (/.f64 x x))) (*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (*.f64 y (/.f64 x x)))) |
x |
(-.f64 (*.f64 y (neg.f64 (/.f64 x x))) (*.f64 (neg.f64 (/.f64 x x)) (+.f64 y x))) |
x |
(-.f64 (-.f64 (+.f64 y y) y) (-.f64 y x)) |
x |
(-.f64 (+.f64 (+.f64 y y) (neg.f64 y)) (-.f64 y x)) |
x |
(-.f64 (-.f64 (*.f64 x (/.f64 (-.f64 x y) (-.f64 x y))) (neg.f64 y)) (*.f64 y (/.f64 (-.f64 x y) (-.f64 x y)))) |
(-.f64 (-.f64 (*.f64 x (/.f64 (-.f64 y x) (-.f64 y x))) (neg.f64 y)) (*.f64 y (/.f64 (-.f64 y x) (-.f64 y x)))) |
(-.f64 (*.f64 (/.f64 (-.f64 y x) (-.f64 y x)) (-.f64 x y)) (neg.f64 y)) |
(-.f64 y (neg.f64 (*.f64 (/.f64 (-.f64 y x) (-.f64 y x)) (-.f64 x y)))) |
(-.f64 (-.f64 (*.f64 (/.f64 (-.f64 x y) (-.f64 x y)) (neg.f64 y)) (neg.f64 y)) (*.f64 (neg.f64 x) (/.f64 (-.f64 x y) (-.f64 x y)))) |
(-.f64 (-.f64 (*.f64 x (/.f64 (-.f64 y x) (-.f64 y x))) (neg.f64 y)) (*.f64 y (/.f64 (-.f64 y x) (-.f64 y x)))) |
(-.f64 (*.f64 (/.f64 (-.f64 y x) (-.f64 y x)) (-.f64 x y)) (neg.f64 y)) |
(-.f64 y (neg.f64 (*.f64 (/.f64 (-.f64 y x) (-.f64 y x)) (-.f64 x y)))) |
(-.f64 (+.f64 (neg.f64 y) (+.f64 y y)) (-.f64 y x)) |
x |
(-.f64 (+.f64 (*.f64 x (/.f64 (-.f64 x y) (-.f64 x y))) y) (*.f64 y (/.f64 (-.f64 x y) (-.f64 x y)))) |
(+.f64 y (-.f64 (*.f64 x (/.f64 (-.f64 y x) (-.f64 y x))) (*.f64 y (/.f64 (-.f64 y x) (-.f64 y x))))) |
(+.f64 y (*.f64 (/.f64 (-.f64 y x) (-.f64 y x)) (-.f64 x y))) |
(-.f64 (+.f64 (*.f64 (/.f64 (-.f64 x y) (-.f64 x y)) (neg.f64 y)) y) (*.f64 (neg.f64 x) (/.f64 (-.f64 x y) (-.f64 x y)))) |
(+.f64 y (-.f64 (*.f64 x (/.f64 (-.f64 y x) (-.f64 y x))) (*.f64 y (/.f64 (-.f64 y x) (-.f64 y x))))) |
(+.f64 y (*.f64 (/.f64 (-.f64 y x) (-.f64 y x)) (-.f64 x y))) |
(-.f64 (+.f64 (-.f64 (neg.f64 y) y) (+.f64 y y)) (neg.f64 x)) |
x |
(*.f64 x 1) |
x |
(*.f64 x (/.f64 x x)) |
x |
(*.f64 x (*.f64 x (/.f64 1 x))) |
x |
(*.f64 x (*.f64 (/.f64 x x) (/.f64 x x))) |
x |
(*.f64 x (/.f64 (/.f64 x x) (/.f64 x x))) |
x |
(*.f64 x (*.f64 x (/.f64 (/.f64 x x) x))) |
x |
(*.f64 x (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x)))) |
x |
(*.f64 x (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x)))) |
x |
(*.f64 x (*.f64 x (/.f64 (*.f64 x (/.f64 1 x)) x))) |
x |
(*.f64 x (*.f64 x (/.f64 (*.f64 (/.f64 x x) (/.f64 x x)) x))) |
x |
(*.f64 x (*.f64 (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))) (/.f64 x x))) |
x |
(*.f64 x (*.f64 (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))) (/.f64 x x))) |
x |
(*.f64 x (*.f64 (*.f64 x (/.f64 (/.f64 x x) x)) (/.f64 x x))) |
x |
(*.f64 1 x) |
x |
(*.f64 (/.f64 x x) x) |
x |
(*.f64 (/.f64 x x) (*.f64 x (/.f64 1 (/.f64 x x)))) |
x |
(*.f64 (/.f64 x x) (+.f64 0 (*.f64 x (/.f64 1 (/.f64 x x))))) |
x |
(*.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 -1 (/.f64 x x)))) |
x |
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (*.f64 (/.f64 x x) (/.f64 x x)) (/.f64 x x)))) |
x |
(*.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 (neg.f64 (/.f64 x x)) (/.f64 x x)))) |
x |
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (/.f64 1 (/.f64 x x))) (/.f64 (/.f64 x x) (/.f64 x x)))) |
x |
(*.f64 (neg.f64 x) -1) |
x |
(*.f64 (neg.f64 x) (neg.f64 (/.f64 x x))) |
x |
(*.f64 (neg.f64 x) (*.f64 -1 (/.f64 x x))) |
x |
(*.f64 (neg.f64 x) (*.f64 (neg.f64 (/.f64 x x)) (/.f64 x x))) |
x |
(*.f64 (neg.f64 x) (-.f64 (/.f64 0 x) (/.f64 x x))) |
x |
(*.f64 (neg.f64 x) (-.f64 0 (*.f64 x (/.f64 1 x)))) |
x |
(*.f64 (neg.f64 x) (-.f64 0 (*.f64 (/.f64 x x) (/.f64 x x)))) |
x |
(*.f64 (*.f64 x (/.f64 1 x)) x) |
x |
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 1 x))))) |
x |
(*.f64 -1 (neg.f64 x)) |
x |
(*.f64 (*.f64 (/.f64 x x) (/.f64 x x)) x) |
x |
(*.f64 (/.f64 (/.f64 x x) (/.f64 x x)) x) |
x |
(*.f64 (*.f64 x (/.f64 (/.f64 x x) x)) x) |
x |
(*.f64 (*.f64 x (/.f64 1 (/.f64 x x))) (/.f64 x x)) |
x |
(*.f64 (neg.f64 (/.f64 x x)) (neg.f64 x)) |
x |
(*.f64 (neg.f64 (/.f64 x x)) (*.f64 (neg.f64 x) (/.f64 (/.f64 x x) (/.f64 x x)))) |
x |
(*.f64 (*.f64 (/.f64 x x) (*.f64 x (/.f64 1 x))) x) |
x |
(*.f64 (*.f64 (/.f64 x x) (*.f64 (/.f64 x x) (/.f64 x x))) x) |
x |
(*.f64 (neg.f64 (*.f64 (/.f64 x x) (/.f64 x x))) (neg.f64 x)) |
x |
(*.f64 (neg.f64 (neg.f64 (/.f64 x x))) x) |
x |
(*.f64 (neg.f64 (*.f64 x (/.f64 1 x))) (neg.f64 x)) |
x |
(/.f64 x 1) |
x |
(/.f64 x (/.f64 x x)) |
x |
(/.f64 x (/.f64 (/.f64 x x) (/.f64 x x))) |
x |
(/.f64 x (/.f64 (*.f64 x (/.f64 1 x)) (*.f64 x (/.f64 1 x)))) |
x |
(/.f64 (neg.f64 x) -1) |
x |
(neg.f64 (neg.f64 x)) |
x |
Compiled 2592 to 666 computations (74.3% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 148 | 3 | 151 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 149 | 4 | 153 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (-.f64 (*.f64 y x) (*.f64 y z)) |
| ✓ | 0.0b | (*.f64 y (-.f64 x z)) |
| ▶ | 25.5b | (*.f64 y (neg.f64 z)) |
| ▶ | 32.1b | (*.f64 y x) |
Compiled 31 to 20 computations (35.5% saved)
Compiled 8 to 4 computations (50% saved)
Compiled 11 to 5 computations (54.5% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 (*.f64 y x) (*.f64 y z)) |
Compiled 19 to 6 computations (68.4% saved)
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | (-.f64 (*.f64 y x) (*.f64 y z)) |
| 0.0ms | y | @ | inf | (-.f64 (*.f64 y x) (*.f64 y z)) |
| 0.0ms | y | @ | -inf | (-.f64 (*.f64 y x) (*.f64 y z)) |
| 0.0ms | x | @ | 0 | (-.f64 (*.f64 y x) (*.f64 y z)) |
| 0.0ms | x | @ | inf | (-.f64 (*.f64 y x) (*.f64 y z)) |
| 1× | batch-egg-rewrite |
| 1998× | rational_best_oopsla_all_46_json-2 |
| 1998× | rational_best_oopsla_all_46_json-1 |
| 1998× | rational_best_oopsla_all_46_json-4 |
| 1998× | rational_best_oopsla_all_46_json-3 |
| 510× | rational_best_oopsla_all_46_json_45_simplify-89 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 51 | 13 |
| 2 | 182 | 13 |
| 3 | 874 | 13 |
| 4 | 4309 | 13 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (*.f64 y x) (*.f64 y z)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (neg.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 1 (neg.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y (neg.f64 (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 (-.f64 x z) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) (*.f64 (-.f64 x (*.f64 z (/.f64 y y))) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 y z)) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (neg.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y z) -1) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (-.f64 x z)) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (-.f64 x (*.f64 z (/.f64 y y)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x (*.f64 z (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (/.f64 y y) (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x (*.f64 y (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 x (/.f64 y y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 z (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 z (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 y (/.f64 (-.f64 x z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 y (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (*.f64 (/.f64 y y) (-.f64 x z)) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (-.f64 x (*.f64 y (/.f64 z y))) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (-.f64 (*.f64 x (/.f64 y y)) z) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 y (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 y (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 y (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 z x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 z x)) (neg.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (*.f64 z (/.f64 y y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 z (*.f64 x (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (*.f64 (/.f64 y y) (-.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))) (*.f64 x (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (*.f64 y (/.f64 z y)) (*.f64 x (/.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (*.f64 y (/.f64 z y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (*.f64 (-.f64 (*.f64 z (/.f64 y y)) x) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (*.f64 (-.f64 z x) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (neg.f64 x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (neg.f64 x) (neg.f64 (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (neg.f64 x) (*.f64 z (neg.f64 (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (neg.f64 (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (*.f64 z (neg.f64 (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x z) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x z) (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 z (/.f64 y y))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 z (/.f64 y y))) (*.f64 y (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) (-.f64 x (*.f64 z (/.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 y (-.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 z (/.f64 y y)) x) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 z x) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y y) (-.f64 x z)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 y (/.f64 z y))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (/.f64 y y)) z) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x z) (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) (-.f64 x (*.f64 z (/.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 z x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (-.f64 z x))))))) |
| 1× | egg-herbie |
| 1346× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 1292× | rational_best_oopsla_all_46_json_45_simplify-37 |
| 1268× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 1074× | rational_best_oopsla_all_46_json_45_simplify-89 |
| 880× | rational_best_oopsla_all_46_json_45_simplify-74 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 228 | 1856 |
| 1 | 1036 | 1856 |
| 2 | 3834 | 1850 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 -1 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(+.f64 (*.f64 y x) (*.f64 1 (neg.f64 (*.f64 y z)))) |
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 (*.f64 z (/.f64 y y))))) |
(+.f64 (*.f64 y (-.f64 x z)) 0) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) 0)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) 0)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (-.f64 x z) 0)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (-.f64 x (*.f64 z (/.f64 y y))) 0)) |
(+.f64 0 (*.f64 y (-.f64 x z))) |
(+.f64 (neg.f64 (*.f64 y z)) (*.f64 y x)) |
(+.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (neg.f64 (*.f64 y z)))) |
(+.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 (*.f64 y z) -1) (*.f64 y x)) |
(+.f64 (*.f64 0 (-.f64 x z)) (*.f64 y (-.f64 x z))) |
(+.f64 (*.f64 0 (-.f64 x (*.f64 z (/.f64 y y)))) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 z (/.f64 y y)))) |
(*.f64 y (*.f64 (/.f64 y y) (-.f64 x z))) |
(*.f64 y (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) z)) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 z (/.f64 y y)))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 z (/.f64 y y)))) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) z)) |
(*.f64 y (*.f64 y (/.f64 (-.f64 x z) y))) |
(*.f64 y (*.f64 y (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) y))) |
(*.f64 y (*.f64 (*.f64 (/.f64 y y) (-.f64 x z)) (/.f64 y y))) |
(*.f64 y (*.f64 (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))) (/.f64 y y))) |
(*.f64 y (*.f64 (-.f64 x (*.f64 y (/.f64 z y))) (/.f64 y y))) |
(*.f64 y (*.f64 (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))) (/.f64 y y))) |
(*.f64 y (*.f64 (-.f64 (*.f64 x (/.f64 y y)) z) (/.f64 y y))) |
(*.f64 y (*.f64 (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))) (/.f64 y y))) |
(*.f64 y (-.f64 x (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 (*.f64 y (-.f64 x z)) 1) |
(*.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z))))) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 y (-.f64 x z))))) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 1 (*.f64 y (-.f64 x z))) |
(*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 y (-.f64 x z))) |
(*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))) |
(*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))) |
(*.f64 (*.f64 y (-.f64 z x)) -1) |
(*.f64 (*.f64 y (-.f64 z x)) (neg.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 z (/.f64 y y)) x)) |
(*.f64 (neg.f64 y) (-.f64 z x)) |
(*.f64 (neg.f64 y) (-.f64 z (*.f64 x (/.f64 y y)))) |
(*.f64 (neg.f64 y) (*.f64 (/.f64 y y) (-.f64 z x))) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))) (*.f64 x (/.f64 y y)))) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))) x)) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 y (/.f64 z y)) (*.f64 x (/.f64 y y)))) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 y (/.f64 z y)) x)) |
(*.f64 (neg.f64 y) (*.f64 (-.f64 (*.f64 z (/.f64 y y)) x) (/.f64 y y))) |
(*.f64 (neg.f64 y) (*.f64 (-.f64 z x) (/.f64 y y))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 x) (neg.f64 z))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 x) (neg.f64 (*.f64 z (/.f64 y y))))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 x) (*.f64 z (neg.f64 (/.f64 y y))))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (neg.f64 z))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (neg.f64 (*.f64 z (/.f64 y y))))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (*.f64 z (neg.f64 (/.f64 y y))))) |
(*.f64 (-.f64 x z) y) |
(*.f64 (-.f64 x z) (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) |
(*.f64 (-.f64 x (*.f64 z (/.f64 y y))) y) |
(*.f64 (-.f64 x (*.f64 z (/.f64 y y))) (*.f64 y (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) (-.f64 x (*.f64 z (/.f64 y y)))))) |
(*.f64 -1 (*.f64 y (-.f64 z x))) |
(*.f64 (-.f64 (*.f64 z (/.f64 y y)) x) (neg.f64 y)) |
(*.f64 (-.f64 z x) (neg.f64 y)) |
(*.f64 (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))) (*.f64 y (-.f64 x z))) |
(*.f64 (*.f64 (/.f64 y y) (-.f64 x z)) y) |
(*.f64 (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))) y) |
(*.f64 (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 x z))) |
(*.f64 (-.f64 x (*.f64 y (/.f64 z y))) y) |
(*.f64 (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))) y) |
(*.f64 (-.f64 (*.f64 x (/.f64 y y)) z) y) |
(*.f64 (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))) y) |
(*.f64 (neg.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 z x))) |
(/.f64 (*.f64 y (-.f64 x z)) 1) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 y y)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x z) (-.f64 x z))) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) (-.f64 x (*.f64 z (/.f64 y y))))) |
(/.f64 (*.f64 y (-.f64 z x)) -1) |
(neg.f64 (*.f64 y (-.f64 z x))) |
| Outputs |
|---|
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 x) (*.f64 -1 z)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y x) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y z)) |
(*.f64 y (neg.f64 z)) |
(neg.f64 (*.f64 y z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (neg.f64 (*.f64 y z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 1 (neg.f64 (*.f64 y z)))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) 0) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) 0)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) 0)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (-.f64 x z) 0)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 y (-.f64 x z)) (*.f64 (-.f64 x (*.f64 z (/.f64 y y))) 0)) |
(*.f64 y (-.f64 x z)) |
(+.f64 0 (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (neg.f64 (*.f64 y z)) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (neg.f64 (*.f64 y z)))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 0 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 (*.f64 y z) -1) (*.f64 y x)) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 0 (-.f64 x z)) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(+.f64 (*.f64 0 (-.f64 x (*.f64 z (/.f64 y y)))) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 z (/.f64 y y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (/.f64 y y) (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 z (/.f64 y y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 z (/.f64 y y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) z)) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 y (/.f64 (-.f64 x z) y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 y (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (*.f64 (/.f64 y y) (-.f64 x z)) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (-.f64 x (*.f64 y (/.f64 z y))) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (-.f64 (*.f64 x (/.f64 y y)) z) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (*.f64 (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 x (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 y (/.f64 x y)) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 y (/.f64 z y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 y (/.f64 (*.f64 z (/.f64 y y)) y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 y (/.f64 z y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 y (-.f64 (*.f64 (/.f64 y y) (*.f64 x (/.f64 y y))) (*.f64 (/.f64 y y) (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) 1) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 y (-.f64 x z))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 x z)) (*.f64 (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 1 (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (*.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 z x)) -1) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 y (-.f64 z x)) (neg.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 z (/.f64 y y)) x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 z x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 z (*.f64 x (/.f64 y y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (*.f64 (/.f64 y y) (-.f64 z x))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))) (*.f64 x (/.f64 y y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y))) x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 y (/.f64 z y)) (*.f64 x (/.f64 y y)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (*.f64 y (/.f64 z y)) x)) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (*.f64 (-.f64 (*.f64 z (/.f64 y y)) x) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (*.f64 (-.f64 z x) (/.f64 y y))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 x) (neg.f64 z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 x) (neg.f64 (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 x) (*.f64 z (neg.f64 (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (neg.f64 z))) |
(*.f64 y (-.f64 (neg.f64 z) (neg.f64 (*.f64 x (/.f64 y y))))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (-.f64 z 0))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (neg.f64 (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 (neg.f64 z) (neg.f64 (*.f64 x (/.f64 y y))))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (-.f64 z 0))) |
(*.f64 (neg.f64 y) (-.f64 (neg.f64 (*.f64 x (/.f64 y y))) (*.f64 z (neg.f64 (/.f64 y y))))) |
(*.f64 y (-.f64 (neg.f64 z) (neg.f64 (*.f64 x (/.f64 y y))))) |
(*.f64 y (-.f64 (*.f64 x (/.f64 y y)) (-.f64 z 0))) |
(*.f64 (-.f64 x z) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 x z) (*.f64 y (/.f64 (-.f64 x z) (-.f64 x z)))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 x (*.f64 z (/.f64 y y))) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 x (*.f64 z (/.f64 y y))) (*.f64 y (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) (-.f64 x (*.f64 z (/.f64 y y)))))) |
(*.f64 y (-.f64 x z)) |
(*.f64 -1 (*.f64 y (-.f64 z x))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 (*.f64 z (/.f64 y y)) x) (neg.f64 y)) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 z x) (neg.f64 y)) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 (*.f64 y (-.f64 x z)) (/.f64 1 (*.f64 y (-.f64 x z)))) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 (/.f64 y y) (-.f64 x z)) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 (/.f64 y y) (-.f64 x (*.f64 z (/.f64 y y)))) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (*.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 x (*.f64 y (/.f64 z y))) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 x (*.f64 (/.f64 y y) (*.f64 z (/.f64 y y)))) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 (*.f64 x (/.f64 y y)) z) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (-.f64 (*.f64 x (/.f64 y y)) (*.f64 y (/.f64 z y))) y) |
(*.f64 y (-.f64 x z)) |
(*.f64 (neg.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) (*.f64 y (-.f64 z x))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) 1) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 y y)) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x)))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x z) (-.f64 x z))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 x z)) (/.f64 (-.f64 x (*.f64 z (/.f64 y y))) (-.f64 x (*.f64 z (/.f64 y y))))) |
(*.f64 y (-.f64 x z)) |
(/.f64 (*.f64 y (-.f64 z x)) -1) |
(*.f64 y (-.f64 x z)) |
(neg.f64 (*.f64 y (-.f64 z x))) |
(*.f64 y (-.f64 x z)) |
Compiled 1600 to 262 computations (83.6% saved)
4 alts after pruning (0 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 113 | 0 | 113 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 3 | 3 |
| Total | 113 | 4 | 117 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (-.f64 (*.f64 y x) (*.f64 y z)) |
| ✓ | 0.0b | (*.f64 y (-.f64 x z)) |
| ✓ | 25.5b | (*.f64 y (neg.f64 z)) |
| ✓ | 32.1b | (*.f64 y x) |
Compiled 31 to 20 computations (35.5% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 y (neg.f64 z)) |
(*.f64 y (-.f64 x z)) |
(-.f64 (*.f64 y x) (*.f64 y z)) |
(-.f64 (*.f64 y (+.f64 y (-.f64 x y))) (*.f64 y z)) |
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
| Outputs |
|---|
(-.f64 (*.f64 y x) (*.f64 y z)) |
4 calls:
| 93.0ms | y |
| 5.0ms | x |
| 5.0ms | z |
| 4.0ms | (-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
| 0.0b | 1 | (-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)) |
Compiled 78 to 37 computations (52.6% saved)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 y (neg.f64 z)) |
(*.f64 y (-.f64 x z)) |
| Outputs |
|---|
(*.f64 y (-.f64 x z)) |
3 calls:
| 4.0ms | z |
| 3.0ms | y |
| 3.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | z |
Compiled 27 to 17 computations (37% saved)
Total -45.1b remaining (-398.7%)
Threshold costs -45.1b (-398.7%)
| Inputs |
|---|
(*.f64 y x) |
(*.f64 y (neg.f64 z)) |
| Outputs |
|---|
(*.f64 y (neg.f64 z)) |
(*.f64 y x) |
(*.f64 y (neg.f64 z)) |
(*.f64 y x) |
(*.f64 y (neg.f64 z)) |
3 calls:
| 46.0ms | x |
| 36.0ms | y |
| 14.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 14.6b | 3 | x |
| 13.9b | 13 | y |
| 11.3b | 5 | z |
Compiled 22 to 15 computations (31.8% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 90.0ms | 3.8792867076114387e+114 | 1.766747019152656e+116 |
| 7.0ms | 4.66860084055989e+89 | 6.329228679403911e+89 |
| 18.0ms | 2.3420300316272284e-29 | 1.1392831894745845e-24 |
| 17.0ms | -1.382448794194149e-151 | -2.579826076444422e-153 |
| 76.0ms | 8× | body | 512 | infinite |
| 32.0ms | 326× | body | 256 | valid |
| 8.0ms | 33× | body | 1024 | valid |
| 5.0ms | 28× | body | 512 | valid |
| 5.0ms | 13× | body | 2048 | valid |
| 2.0ms | 7× | body | 1024 | infinite |
| 0.0ms | 5× | body | 256 | infinite |
Compiled 399 to 289 computations (27.6% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 122 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(-.f64 (*.f64 y x) (*.f64 y z)) |
(*.f64 y (-.f64 x z)) |
(if (<=.f64 z -7960701989857939/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (*.f64 y (neg.f64 z)) (if (<=.f64 z 3832940580997451/696898287454081973172991196020261297061888) (*.f64 y x) (if (<=.f64 z 619999999999999999574228069834605507691202585982899114180012742338821845932078561916616704) (*.f64 y (neg.f64 z)) (if (<=.f64 z 3900000000000000060681722904920687794645985447992139590142105263680251746542547242733443020668685045937204495384576) (*.f64 y x) (*.f64 y (neg.f64 z)))))) |
(*.f64 y x) |
| Outputs |
|---|
(-.f64 (*.f64 y x) (*.f64 y z)) |
(*.f64 y (-.f64 x z)) |
(if (<=.f64 z -7960701989857939/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (*.f64 y (neg.f64 z)) (if (<=.f64 z 3832940580997451/696898287454081973172991196020261297061888) (*.f64 y x) (if (<=.f64 z 619999999999999999574228069834605507691202585982899114180012742338821845932078561916616704) (*.f64 y (neg.f64 z)) (if (<=.f64 z 3900000000000000060681722904920687794645985447992139590142105263680251746542547242733443020668685045937204495384576) (*.f64 y x) (*.f64 y (neg.f64 z)))))) |
(*.f64 y x) |
Compiled 61 to 33 computations (45.9% saved)
| 1× | egg-herbie |
| 1578× | rational_best_oopsla_all_46_json_45_simplify-102 |
| 1014× | rational_best_oopsla_all_46_json_45_simplify-93 |
| 900× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 734× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 566× | rational_best_oopsla_all_46_json_45_simplify-10 |
Useful iterations: 5 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 37 |
| 1 | 31 | 31 |
| 2 | 100 | 31 |
| 3 | 391 | 25 |
| 4 | 1857 | 19 |
| 5 | 5225 | 13 |
| 1× | node limit |
Compiled 99 to 26 computations (73.7% saved)
Compiled 52 to 22 computations (57.7% saved)
Loading profile data...