Time bar (total: 5.0s)
| 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 |
| 25% | 25% | 74.9% | 0.1% | 0% | 0% | 0% | 7 |
| 37.5% | 37.4% | 62.4% | 0.1% | 0% | 0% | 0% | 8 |
| 37.5% | 37.4% | 62.4% | 0.1% | 0% | 0% | 0% | 9 |
| 56.3% | 56.2% | 43.7% | 0.1% | 0% | 0% | 0% | 10 |
| 65.6% | 65.5% | 34.3% | 0.1% | 0% | 0% | 0% | 11 |
| 65.6% | 65.5% | 34.3% | 0.1% | 0% | 0% | 0% | 12 |
Compiled 13 to 9 computations (30.8% saved)
| 1.4s | 6282× | body | 256 | valid |
| 686.0ms | 1324× | body | 1024 | valid |
| 197.0ms | 647× | body | 512 | valid |
| 2.0ms | 3× | body | 2048 | valid |
| 2× | egg-herbie |
| 934× | rational_best_oopsla_all_46_json_45_simplify-80 |
| 914× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 872× | rational_best_oopsla_all_46_json_45_simplify-10 |
| 842× | rational_best_oopsla_all_46_json_45_simplify-30 |
| 812× | rational_best_oopsla_all_46_json_45_simplify-77 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 24 | 108 |
| 1 | 51 | 108 |
| 2 | 147 | 108 |
| 3 | 463 | 108 |
| 4 | 1761 | 108 |
| 5 | 4093 | 108 |
| 6 | 7287 | 108 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
2 |
| Outputs |
|---|
0 |
1 |
2 |
| Inputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
(+.f64 (+.f64 y (sin.f64 x)) (*.f64 z (cos.f64 x))) |
(+.f64 (+.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) |
(+.f64 (+.f64 x (sin.f64 z)) (*.f64 y (cos.f64 z))) |
| Outputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(+.f64 (+.f64 y (sin.f64 x)) (*.f64 z (cos.f64 x))) |
(+.f64 y (+.f64 (sin.f64 x) (*.f64 z (cos.f64 x)))) |
(+.f64 (+.f64 z (sin.f64 y)) (*.f64 x (cos.f64 y))) |
(+.f64 (+.f64 (sin.f64 y) z) (*.f64 x (cos.f64 y))) |
(+.f64 (sin.f64 y) (+.f64 z (*.f64 x (cos.f64 y)))) |
(+.f64 z (+.f64 (sin.f64 y) (*.f64 x (cos.f64 y)))) |
(+.f64 (+.f64 x (sin.f64 z)) (*.f64 y (cos.f64 z))) |
(+.f64 (sin.f64 z) (+.f64 x (*.f64 y (cos.f64 z)))) |
(+.f64 x (+.f64 (sin.f64 z) (*.f64 y (cos.f64 z)))) |
Compiled 15 to 11 computations (26.7% saved)
| 1× | egg-herbie |
| 1096× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 1064× | rational_best_oopsla_all_46_json_45_simplify-7 |
| 964× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 744× | rational_best_oopsla_all_46_json_45_simplify-10 |
| 708× | rational_best_oopsla_all_46_json_45_simplify-30 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 27 |
| 1 | 18 | 27 |
| 2 | 44 | 27 |
| 3 | 131 | 27 |
| 4 | 486 | 27 |
| 5 | 2532 | 27 |
| 6 | 5339 | 27 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
| Outputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
(+.f64 x (+.f64 (*.f64 z (cos.f64 y)) (sin.f64 y))) |
(+.f64 x (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
Compiled 30 to 12 computations (60% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 2 | 1 | 3 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 2 | 2 | 4 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.1b | (+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
Compiled 12 to 8 computations (33.3% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (sin.f64 y)) |
| ✓ | 0.0b | (sin.f64 y) |
| ✓ | 0.1b | (*.f64 z (cos.f64 y)) |
Compiled 27 to 8 computations (70.4% saved)
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | 0 | (*.f64 z (cos.f64 y)) |
| 0.0ms | y | @ | 0 | (*.f64 z (cos.f64 y)) |
| 0.0ms | z | @ | inf | (*.f64 z (cos.f64 y)) |
| 0.0ms | z | @ | -inf | (*.f64 z (cos.f64 y)) |
| 0.0ms | y | @ | inf | (*.f64 z (cos.f64 y)) |
| 1× | batch-egg-rewrite |
| 1772× | rational_best_oopsla_all_46_json-2 |
| 1772× | rational_best_oopsla_all_46_json-1 |
| 1772× | rational_best_oopsla_all_46_json-4 |
| 1772× | rational_best_oopsla_all_46_json-3 |
| 774× | rational_best_oopsla_all_46_json_45_simplify-7 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 27 |
| 1 | 58 | 27 |
| 2 | 167 | 27 |
| 3 | 680 | 27 |
| 4 | 3421 | 27 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 z (cos.f64 y)) |
(sin.f64 y) |
(+.f64 x (sin.f64 y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) (*.f64 z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z)))) (*.f64 z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) z))) (*.f64 z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (cos.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (cos.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) (*.f64 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))) (*.f64 (cos.f64 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (/.f64 z z) (/.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (cos.f64 y) (/.f64 z z)) (*.f64 (cos.f64 y) (/.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))) (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (/.f64 (cos.f64 y) z)) (*.f64 z (/.f64 (cos.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (cos.f64 y) (neg.f64 z))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 y) (*.f64 0 (/.f64 (sin.f64 y) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (/.f64 (sin.f64 y) (sin.f64 y))) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (/.f64 (sin.f64 y) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 1 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))) (/.f64 (sin.f64 y) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 y) (*.f64 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))) (/.f64 (sin.f64 y) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 1 (/.f64 (sin.f64 y) (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (neg.f64 (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 y)) (neg.f64 (/.f64 (sin.f64 y) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))) (sin.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (sin.f64 y) (sin.f64 y))) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) (/.f64 (sin.f64 y) (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 y))))))) |
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 (sin.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 1 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) x) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (+.f64 (sin.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (+.f64 (sin.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (neg.f64 (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (neg.f64 (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))) (+.f64 (sin.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) x)) (neg.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (+.f64 (sin.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (neg.f64 (+.f64 (sin.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) x) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 (sin.f64 y) x))))))) |
| 1× | egg-herbie |
| 1118× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 1056× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 706× | rational_best_oopsla_all_46_json_45_simplify-23 |
| 592× | rational_best_oopsla_all_46_json_45_simplify-89 |
| 584× | rational_best_oopsla_all_46_json_45_simplify-82 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 202 | 1634 |
| 1 | 710 | 1634 |
| 2 | 3420 | 1626 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
z |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))) |
y |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))) |
(sin.f64 y) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
x |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
x |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
x |
(+.f64 y x) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y x)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) x))) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (*.f64 z (cos.f64 y)) 0) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))))) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))))) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) z)))) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))))) |
(+.f64 0 (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 0 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z)))) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) z))) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (cos.f64 y))) |
(-.f64 (*.f64 z (cos.f64 y)) 0) |
(-.f64 0 (*.f64 (cos.f64 y) (neg.f64 z))) |
(-.f64 (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) (*.f64 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))) (*.f64 (cos.f64 y) (neg.f64 z)))) |
(/.f64 (*.f64 z (cos.f64 y)) 1) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 z z)) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (/.f64 z z) (/.f64 z z))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (cos.f64 y) (/.f64 z z)) (*.f64 (cos.f64 y) (/.f64 z z)))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))) (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (/.f64 (cos.f64 y) z)) (*.f64 z (/.f64 (cos.f64 y) z)))) |
(neg.f64 (*.f64 (cos.f64 y) (neg.f64 z))) |
(+.f64 (sin.f64 y) 0) |
(+.f64 (sin.f64 y) (*.f64 0 (/.f64 (sin.f64 y) (sin.f64 y)))) |
(+.f64 0 (sin.f64 y)) |
(+.f64 (*.f64 0 (/.f64 (sin.f64 y) (sin.f64 y))) (sin.f64 y)) |
(-.f64 (sin.f64 y) 0) |
(-.f64 0 (neg.f64 (sin.f64 y))) |
(*.f64 (sin.f64 y) 1) |
(*.f64 (sin.f64 y) (/.f64 (sin.f64 y) (sin.f64 y))) |
(*.f64 (sin.f64 y) (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y)))) |
(*.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(*.f64 (sin.f64 y) (*.f64 1 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))))) |
(*.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))))) |
(*.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))))) |
(*.f64 (sin.f64 y) (*.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (sin.f64 y)))) |
(*.f64 (sin.f64 y) (*.f64 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(*.f64 (sin.f64 y) (*.f64 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(*.f64 1 (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (sin.f64 y)) |
(*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 1 (/.f64 (sin.f64 y) (sin.f64 y))))) |
(*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))))) |
(*.f64 -1 (neg.f64 (sin.f64 y))) |
(*.f64 -1 (*.f64 1 (neg.f64 (sin.f64 y)))) |
(*.f64 -1 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (neg.f64 (sin.f64 y)))) |
(*.f64 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))) (sin.f64 y)) |
(*.f64 (neg.f64 (sin.f64 y)) -1) |
(*.f64 (neg.f64 (sin.f64 y)) (neg.f64 (/.f64 (sin.f64 y) (sin.f64 y)))) |
(*.f64 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))) (sin.f64 y)) |
(*.f64 (neg.f64 (/.f64 (sin.f64 y) (sin.f64 y))) (neg.f64 (sin.f64 y))) |
(/.f64 (sin.f64 y) 1) |
(/.f64 (sin.f64 y) (/.f64 (sin.f64 y) (sin.f64 y))) |
(/.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(neg.f64 (neg.f64 (sin.f64 y))) |
(-.f64 (+.f64 (sin.f64 y) x) 0) |
(-.f64 0 (neg.f64 (+.f64 (sin.f64 y) x))) |
(*.f64 (+.f64 (sin.f64 y) x) 1) |
(*.f64 (+.f64 (sin.f64 y) x) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x)))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 1 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (+.f64 (sin.f64 y) x)))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(*.f64 1 (+.f64 (sin.f64 y) x)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (+.f64 (sin.f64 y) x)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))) |
(*.f64 -1 (neg.f64 (+.f64 (sin.f64 y) x))) |
(*.f64 -1 (*.f64 1 (neg.f64 (+.f64 (sin.f64 y) x)))) |
(*.f64 -1 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (neg.f64 (+.f64 (sin.f64 y) x)))) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))) (+.f64 (sin.f64 y) x)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) x)) -1) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) x)) (neg.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (+.f64 (sin.f64 y) x)) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (neg.f64 (+.f64 (sin.f64 y) x))) |
(/.f64 (+.f64 (sin.f64 y) x) 1) |
(/.f64 (+.f64 (sin.f64 y) x) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) |
(/.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(neg.f64 (neg.f64 (+.f64 (sin.f64 y) x))) |
| Outputs |
|---|
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
(*.f64 (cos.f64 y) z) |
z |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z) |
(+.f64 z (*.f64 -1/2 (*.f64 z (pow.f64 y 2)))) |
(+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2))) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))) |
(+.f64 z (+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (*.f64 1/24 (*.f64 z (pow.f64 y 4))))) |
(+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (*.f64 (pow.f64 y 4) (*.f64 z 1/24)))) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))) |
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 (+.f64 z (*.f64 1/24 (*.f64 z (pow.f64 y 4)))) (*.f64 -1/720 (*.f64 z (pow.f64 y 6))))) |
(+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (+.f64 (*.f64 1/24 (*.f64 z (pow.f64 y 4))) (+.f64 (*.f64 -1/720 (*.f64 z (pow.f64 y 6))) z))) |
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (+.f64 (*.f64 (pow.f64 y 4) (*.f64 z 1/24)) (+.f64 z (*.f64 (pow.f64 y 6) (*.f64 z -1/720))))) |
y |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) y) |
(+.f64 y (*.f64 -1/6 (pow.f64 y 3))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) y)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (*.f64 1/120 (pow.f64 y 5)))) |
(+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) (*.f64 -1/6 (pow.f64 y 3)))) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 1/120 (pow.f64 y 5)))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 -1/5040 (pow.f64 y 7))))) |
(+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 (+.f64 y (*.f64 -1/6 (pow.f64 y 3))) (*.f64 -1/5040 (pow.f64 y 7)))) |
(sin.f64 y) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
x |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
x |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
x |
(+.f64 y x) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y x)) |
(+.f64 y (+.f64 (*.f64 -1/6 (pow.f64 y 3)) x)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) x))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y x))) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (sin.f64 y) x) |
(+.f64 (*.f64 z (cos.f64 y)) 0) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) z)))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 z (cos.f64 y)) (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))))) |
(*.f64 (cos.f64 y) z) |
(+.f64 0 (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 0 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z)))) (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) z))) (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 0 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(-.f64 (*.f64 z (cos.f64 y)) 0) |
(*.f64 (cos.f64 y) z) |
(-.f64 0 (*.f64 (cos.f64 y) (neg.f64 z))) |
(*.f64 (cos.f64 y) z) |
(-.f64 (*.f64 0 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) (*.f64 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))) (*.f64 (cos.f64 y) (neg.f64 z)))) |
(*.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (neg.f64 (*.f64 (cos.f64 y) (neg.f64 z)))) |
(*.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) |
(/.f64 (*.f64 z (cos.f64 y)) 1) |
(*.f64 (cos.f64 y) z) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 z z)) |
(*.f64 (cos.f64 y) z) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y)))) |
(*.f64 (cos.f64 y) z) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (/.f64 z z) (/.f64 z z))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 z z) (/.f64 z z))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (cos.f64 y) (/.f64 z z)) (*.f64 (cos.f64 y) (/.f64 z z)))) |
(*.f64 (cos.f64 y) z) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))))) |
(*.f64 (cos.f64 y) z) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 z (cos.f64 y)) (*.f64 z (cos.f64 y))))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))) (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))) (*.f64 (cos.f64 y) (*.f64 (/.f64 z z) (/.f64 z z))))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (/.f64 (cos.f64 y) z)) (*.f64 z (/.f64 (cos.f64 y) z)))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (/.f64 (cos.f64 y) z)) (*.f64 z (/.f64 (cos.f64 y) z)))) |
(neg.f64 (*.f64 (cos.f64 y) (neg.f64 z))) |
(*.f64 (cos.f64 y) z) |
(+.f64 (sin.f64 y) 0) |
(sin.f64 y) |
(+.f64 (sin.f64 y) (*.f64 0 (/.f64 (sin.f64 y) (sin.f64 y)))) |
(sin.f64 y) |
(+.f64 0 (sin.f64 y)) |
(sin.f64 y) |
(+.f64 (*.f64 0 (/.f64 (sin.f64 y) (sin.f64 y))) (sin.f64 y)) |
(sin.f64 y) |
(-.f64 (sin.f64 y) 0) |
(sin.f64 y) |
(-.f64 0 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) 1) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (/.f64 (sin.f64 y) (sin.f64 y))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 1 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 (sin.f64 y) (*.f64 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 1 (sin.f64 y)) |
(sin.f64 y) |
(*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (sin.f64 y)) |
(sin.f64 y) |
(*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 1 (/.f64 (sin.f64 y) (sin.f64 y))))) |
(sin.f64 y) |
(*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (*.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))))) |
(sin.f64 y) |
(*.f64 -1 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(*.f64 -1 (*.f64 1 (neg.f64 (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 -1 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (neg.f64 (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 (*.f64 (sin.f64 y) (/.f64 1 (sin.f64 y))) (sin.f64 y)) |
(sin.f64 y) |
(*.f64 (neg.f64 (sin.f64 y)) -1) |
(sin.f64 y) |
(*.f64 (neg.f64 (sin.f64 y)) (neg.f64 (/.f64 (sin.f64 y) (sin.f64 y)))) |
(sin.f64 y) |
(*.f64 (*.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y))) (sin.f64 y)) |
(sin.f64 y) |
(*.f64 (neg.f64 (/.f64 (sin.f64 y) (sin.f64 y))) (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(/.f64 (sin.f64 y) 1) |
(sin.f64 y) |
(/.f64 (sin.f64 y) (/.f64 (sin.f64 y) (sin.f64 y))) |
(sin.f64 y) |
(/.f64 (sin.f64 y) (/.f64 (/.f64 (sin.f64 y) (sin.f64 y)) (/.f64 (sin.f64 y) (sin.f64 y)))) |
(sin.f64 y) |
(neg.f64 (neg.f64 (sin.f64 y))) |
(sin.f64 y) |
(-.f64 (+.f64 (sin.f64 y) x) 0) |
(+.f64 (sin.f64 y) x) |
(-.f64 0 (neg.f64 (+.f64 (sin.f64 y) x))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) 1) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 1 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (+.f64 (sin.f64 y) x) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 1 (+.f64 (sin.f64 y) x)) |
(+.f64 (sin.f64 y) x) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (+.f64 (sin.f64 y) x)) |
(+.f64 (sin.f64 y) x) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (*.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))))) |
(+.f64 (sin.f64 y) x) |
(*.f64 -1 (neg.f64 (+.f64 (sin.f64 y) x))) |
(+.f64 (sin.f64 y) x) |
(*.f64 -1 (*.f64 1 (neg.f64 (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 -1 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (neg.f64 (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) x) (/.f64 1 (+.f64 (sin.f64 y) x))) (+.f64 (sin.f64 y) x)) |
(+.f64 (sin.f64 y) x) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) x)) -1) |
(+.f64 (sin.f64 y) x) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) x)) (neg.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (+.f64 (sin.f64 y) x)) |
(+.f64 (sin.f64 y) x) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) (neg.f64 (+.f64 (sin.f64 y) x))) |
(+.f64 (sin.f64 y) x) |
(/.f64 (+.f64 (sin.f64 y) x) 1) |
(+.f64 (sin.f64 y) x) |
(/.f64 (+.f64 (sin.f64 y) x) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x))) |
(+.f64 (sin.f64 y) x) |
(/.f64 (+.f64 (sin.f64 y) x) (/.f64 (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)) (/.f64 (+.f64 (sin.f64 y) x) (+.f64 (sin.f64 y) x)))) |
(+.f64 (sin.f64 y) x) |
(neg.f64 (neg.f64 (+.f64 (sin.f64 y) x))) |
(+.f64 (sin.f64 y) x) |
Compiled 2268 to 635 computations (72% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 116 | 3 | 119 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 117 | 3 | 120 |
| Status | Error | Program |
|---|---|---|
| ▶ | 11.2b | (+.f64 (+.f64 x (sin.f64 y)) z) |
| ▶ | 30.0b | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| ▶ | 7.7b | (+.f64 x (*.f64 z (cos.f64 y))) |
Compiled 28 to 19 computations (32.1% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.1b | (*.f64 z (cos.f64 y)) |
Compiled 18 to 6 computations (66.7% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (sin.f64 y) | |
| ✓ | 0.0b | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 0.1b | (*.f64 z (cos.f64 y)) |
Compiled 20 to 7 computations (65% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | -inf | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 0.0ms | z | @ | 0 | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 0.0ms | y | @ | 0 | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 0.0ms | y | @ | inf | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 0.0ms | z | @ | inf | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 1× | batch-egg-rewrite |
| 1668× | rational_best_oopsla_all_46_json-2 |
| 1668× | rational_best_oopsla_all_46_json-1 |
| 1668× | rational_best_oopsla_all_46_json-4 |
| 1668× | rational_best_oopsla_all_46_json-3 |
| 940× | rational_best_oopsla_all_46_json_45_simplify-49 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 21 |
| 1 | 53 | 21 |
| 2 | 156 | 21 |
| 3 | 648 | 21 |
| 4 | 3269 | 21 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 y) (*.f64 z (neg.f64 (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (cos.f64 y)) (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 1 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (neg.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))))) |
| 1× | egg-herbie |
| 1580× | rational_best_oopsla_all_46_json_45_simplify-13 |
| 894× | rational_best_oopsla_all_46_json_45_simplify-7 |
| 846× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 670× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 536× | rational_best_oopsla_all_46_json_45_simplify-87 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 87 | 1173 |
| 1 | 318 | 1173 |
| 2 | 2438 | 1173 |
| 3 | 7568 | 1173 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 y z) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(sin.f64 y) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(*.f64 (cos.f64 y) z) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(-.f64 (sin.f64 y) (*.f64 z (neg.f64 (cos.f64 y)))) |
(-.f64 (*.f64 z (cos.f64 y)) (neg.f64 (sin.f64 y))) |
(-.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 0) |
(-.f64 0 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 1) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 1 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(*.f64 -1 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(*.f64 -1 (*.f64 1 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 -1 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) -1) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (neg.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 1) |
(/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(neg.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
| Outputs |
|---|
z |
(+.f64 y z) |
(+.f64 z y) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z)) |
(+.f64 (+.f64 z y) (*.f64 (pow.f64 y 2) (*.f64 -1/2 z))) |
(+.f64 (+.f64 z y) (*.f64 -1/2 (*.f64 z (pow.f64 y 2)))) |
(+.f64 y (+.f64 z (*.f64 z (*.f64 -1/2 (pow.f64 y 2))))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 y z))) |
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/2 z)) (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 z y))) |
(+.f64 (+.f64 z y) (+.f64 (*.f64 -1/6 (pow.f64 y 3)) (*.f64 -1/2 (*.f64 z (pow.f64 y 2))))) |
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 y (*.f64 -1/6 (pow.f64 y 3))))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(sin.f64 y) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (cos.f64 y) z) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (*.f64 (cos.f64 y) z) (sin.f64 y)) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(-.f64 (sin.f64 y) (*.f64 z (neg.f64 (cos.f64 y)))) |
(-.f64 (sin.f64 y) (*.f64 (cos.f64 y) (neg.f64 z))) |
(-.f64 (*.f64 z (cos.f64 y)) (neg.f64 (sin.f64 y))) |
(-.f64 (sin.f64 y) (neg.f64 (*.f64 z (cos.f64 y)))) |
(-.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 0) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(-.f64 0 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 1) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 1 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 -1 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 -1 (*.f64 1 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 -1 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 1 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) -1) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (neg.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) 1) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (/.f64 (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))) (/.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y)))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(neg.f64 (neg.f64 (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))))) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (+.f64 x (sin.f64 y)) | |
| 0.0b | (sin.f64 y) |
Compiled 18 to 6 computations (66.7% saved)
Compiled 4390 to 1181 computations (73.1% saved)
10 alts after pruning (7 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 246 | 7 | 253 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 246 | 10 | 256 |
| Status | Error | Program |
|---|---|---|
| ▶ | 21.8b | (+.f64 (+.f64 y x) z) |
| ✓ | 11.2b | (+.f64 (+.f64 x (sin.f64 y)) z) |
| ✓ | 30.0b | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| 40.8b | (+.f64 (sin.f64 y) z) | |
| ▶ | 46.3b | (+.f64 z y) |
| ✓ | 7.7b | (+.f64 x (*.f64 z (cos.f64 y))) |
| ▶ | 18.4b | (+.f64 x z) |
| ▶ | 37.3b | (*.f64 (cos.f64 y) z) |
| ▶ | 55.3b | (sin.f64 y) |
| 47.7b | z |
Compiled 110 to 76 computations (30.9% saved)
Compiled 8 to 4 computations (50% saved)
Compiled 8 to 4 computations (50% saved)
Compiled 14 to 5 computations (64.3% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (sin.f64 y) |
Compiled 6 to 4 computations (33.3% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.1b | (*.f64 (cos.f64 y) z) |
Compiled 11 to 5 computations (54.5% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | z | @ | 0 | (*.f64 (cos.f64 y) z) |
| 0.0ms | y | @ | 0 | (*.f64 (cos.f64 y) z) |
| 0.0ms | z | @ | inf | (*.f64 (cos.f64 y) z) |
| 0.0ms | z | @ | -inf | (*.f64 (cos.f64 y) z) |
| 0.0ms | y | @ | -inf | (*.f64 (cos.f64 y) z) |
| 1× | batch-egg-rewrite |
| 1440× | rational_best_oopsla_all_46_json-2 |
| 1440× | rational_best_oopsla_all_46_json-1 |
| 1440× | rational_best_oopsla_all_46_json-4 |
| 1440× | rational_best_oopsla_all_46_json-3 |
| 1166× | rational_best_oopsla_all_46_json_45_simplify-72 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 42 | 11 |
| 2 | 133 | 11 |
| 3 | 567 | 11 |
| 4 | 2851 | 11 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (cos.f64 y) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) (*.f64 (cos.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))))) (*.f64 (cos.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y)))) (*.f64 (cos.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z z))) (*.f64 (cos.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (cos.f64 y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (*.f64 (cos.f64 y) (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (cos.f64 y) (cos.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (/.f64 z z)) (*.f64 (cos.f64 y) (/.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))) (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (cos.f64 y) (neg.f64 z))))))) |
| 1× | egg-herbie |
| 1218× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 1086× | rational_best_oopsla_all_46_json_45_simplify-7 |
| 858× | rational_best_oopsla_all_46_json_45_simplify-89 |
| 642× | rational_best_oopsla_all_46_json_45_simplify-74 |
| 638× | rational_best_oopsla_all_46_json_45_simplify-10 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 76 | 592 |
| 1 | 239 | 592 |
| 2 | 944 | 592 |
| 3 | 4217 | 592 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) 0) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)))) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))))) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))))) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z z)))) |
(+.f64 0 (*.f64 (cos.f64 y) z)) |
(+.f64 (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) (*.f64 (cos.f64 y) z)) |
(+.f64 (*.f64 0 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))))) (*.f64 (cos.f64 y) z)) |
(+.f64 (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y)))) (*.f64 (cos.f64 y) z)) |
(+.f64 (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z z))) (*.f64 (cos.f64 y) z)) |
(-.f64 (*.f64 (cos.f64 y) z) 0) |
(-.f64 0 (*.f64 (cos.f64 y) (neg.f64 z))) |
(-.f64 (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (*.f64 (cos.f64 y) (neg.f64 z)))) |
(/.f64 (*.f64 (cos.f64 y) z) 1) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (cos.f64 y) (cos.f64 y))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 z z)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (/.f64 z z)) (*.f64 (cos.f64 y) (/.f64 z z)))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))) (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))))) |
(neg.f64 (*.f64 (cos.f64 y) (neg.f64 z))) |
| Outputs |
|---|
z |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) z) |
(+.f64 z (*.f64 (pow.f64 y 2) (*.f64 -1/2 z))) |
(+.f64 z (*.f64 -1/2 (*.f64 z (pow.f64 y 2)))) |
(+.f64 z (*.f64 z (*.f64 -1/2 (pow.f64 y 2)))) |
(+.f64 z (*.f64 (pow.f64 y 2) (*.f64 z -1/2))) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z)))) |
(+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/2 z)) (*.f64 (pow.f64 y 4) (*.f64 1/24 z)))) |
(+.f64 z (+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (*.f64 z (*.f64 1/24 (pow.f64 y 4))))) |
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (*.f64 z (*.f64 1/24 (pow.f64 y 4))))) |
(+.f64 z (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (*.f64 z (*.f64 1/24 (pow.f64 y 4))))) |
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 y 2) z)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 y 6) z)) (+.f64 z (*.f64 1/24 (*.f64 (pow.f64 y 4) z))))) |
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/2 z)) (+.f64 z (+.f64 (*.f64 (pow.f64 y 6) (*.f64 -1/720 z)) (*.f64 (pow.f64 y 4) (*.f64 1/24 z))))) |
(+.f64 z (+.f64 (*.f64 z (*.f64 -1/720 (pow.f64 y 6))) (+.f64 (*.f64 -1/2 (*.f64 z (pow.f64 y 2))) (*.f64 z (*.f64 1/24 (pow.f64 y 4)))))) |
(+.f64 (*.f64 z (*.f64 -1/2 (pow.f64 y 2))) (+.f64 z (+.f64 (*.f64 z (*.f64 1/24 (pow.f64 y 4))) (*.f64 -1/720 (*.f64 z (pow.f64 y 6)))))) |
(+.f64 z (+.f64 (*.f64 (pow.f64 y 6) (*.f64 z -1/720)) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 z -1/2)) (*.f64 z (*.f64 1/24 (pow.f64 y 4)))))) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) 0) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)))) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))))) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))))) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z z)))) |
(*.f64 z (cos.f64 y)) |
(+.f64 0 (*.f64 (cos.f64 y) z)) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) (*.f64 (cos.f64 y) z)) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 0 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y))))) (*.f64 (cos.f64 y) z)) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y)))) (*.f64 (cos.f64 y) z)) |
(*.f64 z (cos.f64 y)) |
(+.f64 (*.f64 0 (*.f64 (cos.f64 y) (/.f64 z z))) (*.f64 (cos.f64 y) z)) |
(*.f64 z (cos.f64 y)) |
(-.f64 (*.f64 (cos.f64 y) z) 0) |
(*.f64 z (cos.f64 y)) |
(-.f64 0 (*.f64 (cos.f64 y) (neg.f64 z))) |
(*.f64 z (cos.f64 y)) |
(-.f64 (*.f64 0 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (*.f64 (cos.f64 y) (neg.f64 z)))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) 1) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (cos.f64 y) (cos.f64 y))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 z z)) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y))))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (/.f64 z z)) (*.f64 (cos.f64 y) (/.f64 z z)))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (*.f64 z (/.f64 (cos.f64 y) (cos.f64 y)))))) |
(/.f64 (*.f64 z (cos.f64 y)) (/.f64 (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))) (*.f64 z (*.f64 (/.f64 (cos.f64 y) (cos.f64 y)) (/.f64 (cos.f64 y) (cos.f64 y)))))) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)) (/.f64 (*.f64 (cos.f64 y) z) (*.f64 (cos.f64 y) z)))) |
(*.f64 z (cos.f64 y)) |
(/.f64 (*.f64 (cos.f64 y) z) (/.f64 (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))) (*.f64 (cos.f64 y) (/.f64 z (cos.f64 y))))) |
(*.f64 z (cos.f64 y)) |
(neg.f64 (*.f64 (cos.f64 y) (neg.f64 z))) |
(*.f64 z (cos.f64 y)) |
Compiled 1105 to 418 computations (62.2% saved)
11 alts after pruning (3 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 83 | 1 | 84 |
| Fresh | 0 | 2 | 2 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 7 | 7 |
| Total | 83 | 11 | 94 |
| Status | Error | Program |
|---|---|---|
| ✓ | 21.8b | (+.f64 (+.f64 y x) z) |
| ✓ | 11.2b | (+.f64 (+.f64 x (sin.f64 y)) z) |
| ✓ | 30.0b | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| ▶ | 40.8b | (+.f64 (sin.f64 y) z) |
| ✓ | 46.3b | (+.f64 z y) |
| ✓ | 7.7b | (+.f64 x (*.f64 z (cos.f64 y))) |
| ✓ | 18.4b | (+.f64 x z) |
| ✓ | 37.3b | (*.f64 (cos.f64 y) z) |
| ✓ | 55.3b | (sin.f64 y) |
| 47.7b | z | |
| 60.4b | y |
Compiled 75 to 52 computations (30.7% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| 0.0b | (sin.f64 y) | |
| ✓ | 0.0b | (+.f64 (sin.f64 y) z) |
Compiled 11 to 5 computations (54.5% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | (+.f64 (sin.f64 y) z) |
| 0.0ms | z | @ | inf | (+.f64 (sin.f64 y) z) |
| 0.0ms | y | @ | -inf | (+.f64 (sin.f64 y) z) |
| 0.0ms | y | @ | inf | (+.f64 (sin.f64 y) z) |
| 0.0ms | z | @ | -inf | (+.f64 (sin.f64 y) z) |
| 1× | batch-egg-rewrite |
| 1144× | rational_best_oopsla_all_46_json_45_simplify-37 |
| 1084× | rational_best_oopsla_all_46_json_45_simplify-23 |
| 1046× | rational_best_oopsla_all_46_json_45_simplify-13 |
| 748× | rational_best_oopsla_all_46_json-2 |
| 748× | rational_best_oopsla_all_46_json-1 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 11 |
| 1 | 38 | 11 |
| 2 | 88 | 11 |
| 3 | 283 | 11 |
| 4 | 1344 | 11 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (sin.f64 y) z) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 y) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 z (neg.f64 (sin.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 0 (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 y) z) (*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) 0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (*.f64 -1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 (/.f64 0 (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 0 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (neg.f64 (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (neg.f64 (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) z) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 (sin.f64 y) z))))))) |
| 1× | egg-herbie |
| 1238× | rational_best_oopsla_all_46_json_45_simplify-49 |
| 972× | rational_best_oopsla_all_46_json_45_simplify-72 |
| 720× | rational_best_oopsla_all_46_json_45_simplify-23 |
| 690× | rational_best_oopsla_all_46_json_45_simplify-35 |
| 456× | rational_best_oopsla_all_46_json_45_simplify-89 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 125 | 883 |
| 1 | 519 | 883 |
| 2 | 3478 | 883 |
| 1× | node limit |
| Inputs |
|---|
z |
(+.f64 y z) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y z)) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) z))) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(sin.f64 y) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
z |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
z |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(-.f64 (sin.f64 y) (neg.f64 z)) |
(-.f64 z (neg.f64 (sin.f64 y))) |
(-.f64 (+.f64 (sin.f64 y) z) 0) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) 0)) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) 0)) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 0 (+.f64 (sin.f64 y) z)))) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) 0)) |
(-.f64 0 (neg.f64 (+.f64 (sin.f64 y) z))) |
(-.f64 (*.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z)))) |
(-.f64 (*.f64 0 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) 1) |
(*.f64 (+.f64 (sin.f64 y) z) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 1 (+.f64 (sin.f64 y) z)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) -1) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (*.f64 -1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 (/.f64 0 (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 0 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(*.f64 -1 (neg.f64 (+.f64 (sin.f64 y) z))) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(*.f64 (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z))) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z)) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z)) |
(*.f64 (neg.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z)) |
(*.f64 (neg.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (neg.f64 (+.f64 (sin.f64 y) z))) |
(*.f64 (neg.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (neg.f64 (+.f64 (sin.f64 y) z))) |
(/.f64 (+.f64 (sin.f64 y) z) 1) |
(/.f64 (+.f64 (sin.f64 y) z) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) |
(/.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(/.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))) |
(neg.f64 (neg.f64 (+.f64 (sin.f64 y) z))) |
| Outputs |
|---|
z |
(+.f64 y z) |
(+.f64 z y) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y z)) |
(+.f64 (+.f64 z y) (*.f64 -1/6 (pow.f64 y 3))) |
(+.f64 z (+.f64 (*.f64 -1/6 (pow.f64 y 3)) y)) |
(+.f64 z (+.f64 y (*.f64 -1/6 (pow.f64 y 3)))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) z))) |
(+.f64 (*.f64 -1/6 (pow.f64 y 3)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 z y))) |
(+.f64 y (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 z (*.f64 -1/6 (pow.f64 y 3))))) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(sin.f64 y) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
z |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
z |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(+.f64 z (sin.f64 y)) |
(-.f64 (sin.f64 y) (neg.f64 z)) |
(-.f64 z (neg.f64 (sin.f64 y))) |
(-.f64 z (neg.f64 (sin.f64 y))) |
(-.f64 (sin.f64 y) (neg.f64 z)) |
(-.f64 (+.f64 (sin.f64 y) z) 0) |
(+.f64 z (sin.f64 y)) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) 0)) |
(+.f64 z (sin.f64 y)) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) 0)) |
(+.f64 z (sin.f64 y)) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 0 (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(-.f64 (+.f64 (sin.f64 y) z) (*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) 0)) |
(+.f64 z (sin.f64 y)) |
(-.f64 0 (neg.f64 (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(-.f64 (*.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(-.f64 (*.f64 0 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) 1) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (+.f64 (sin.f64 y) z) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 1 (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) -1) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (*.f64 -1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 (/.f64 0 (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 0 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (-.f64 0 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 -1 (neg.f64 (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (+.f64 (sin.f64 y) z))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (neg.f64 (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) (*.f64 (neg.f64 (+.f64 (sin.f64 y) z)) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (neg.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (+.f64 (sin.f64 y) z)) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (*.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) (neg.f64 (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(*.f64 (neg.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z)))) (neg.f64 (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(/.f64 (+.f64 (sin.f64 y) z) 1) |
(+.f64 z (sin.f64 y)) |
(/.f64 (+.f64 (sin.f64 y) z) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
(/.f64 (+.f64 (sin.f64 y) z) (/.f64 (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)) (/.f64 (+.f64 (sin.f64 y) z) (+.f64 (sin.f64 y) z)))) |
(+.f64 z (sin.f64 y)) |
(/.f64 (+.f64 (sin.f64 y) z) (/.f64 (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))) (*.f64 (+.f64 (sin.f64 y) z) (/.f64 1 (+.f64 (sin.f64 y) z))))) |
(+.f64 z (sin.f64 y)) |
(neg.f64 (neg.f64 (+.f64 (sin.f64 y) z))) |
(+.f64 z (sin.f64 y)) |
Compiled 1834 to 442 computations (75.9% saved)
11 alts after pruning (2 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 108 | 0 | 108 |
| Fresh | 0 | 2 | 2 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 8 | 8 |
| Total | 108 | 11 | 119 |
| Status | Error | Program |
|---|---|---|
| ✓ | 21.8b | (+.f64 (+.f64 y x) z) |
| ✓ | 11.2b | (+.f64 (+.f64 x (sin.f64 y)) z) |
| ✓ | 30.0b | (+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| ✓ | 40.8b | (+.f64 (sin.f64 y) z) |
| ✓ | 46.3b | (+.f64 z y) |
| ✓ | 7.7b | (+.f64 x (*.f64 z (cos.f64 y))) |
| ✓ | 18.4b | (+.f64 x z) |
| ✓ | 37.3b | (*.f64 (cos.f64 y) z) |
| ✓ | 55.3b | (sin.f64 y) |
| 47.7b | z | |
| 60.4b | y |
Compiled 75 to 52 computations (30.7% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
(*.f64 (cos.f64 y) z) |
(+.f64 (sin.f64 y) z) |
(+.f64 x (*.f64 z (cos.f64 y))) |
(+.f64 (+.f64 x (sin.f64 y)) z) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
| Outputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
4 calls:
| 8.0ms | x |
| 8.0ms | (+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
| 8.0ms | z |
| 7.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.1b | 1 | x |
| 0.1b | 1 | y |
| 0.1b | 1 | z |
| 0.1b | 1 | (+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
Compiled 78 to 34 computations (56.4% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
(*.f64 (cos.f64 y) z) |
(+.f64 (sin.f64 y) z) |
(+.f64 x (*.f64 z (cos.f64 y))) |
(+.f64 (+.f64 x (sin.f64 y)) z) |
(+.f64 (sin.f64 y) (*.f64 z (cos.f64 y))) |
| Outputs |
|---|
(+.f64 x (*.f64 z (cos.f64 y))) |
(+.f64 (+.f64 x (sin.f64 y)) z) |
(+.f64 x (*.f64 z (cos.f64 y))) |
3 calls:
| 31.0ms | y |
| 21.0ms | x |
| 21.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 1.9b | 3 | x |
| 4.5b | 5 | y |
| 0.4b | 3 | z |
Compiled 57 to 25 computations (56.1% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 32.0ms | 1.2162662795382928e-38 | 9.675663553626944e-30 |
| 29.0ms | -97311511.5643656 | -994.8468558265572 |
| 38.0ms | 244× | body | 256 | valid |
| 13.0ms | 22× | body | 1024 | valid |
| 6.0ms | 22× | body | 512 | valid |
Compiled 378 to 265 computations (29.9% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
(*.f64 (cos.f64 y) z) |
(+.f64 (sin.f64 y) z) |
(+.f64 x (*.f64 z (cos.f64 y))) |
| Outputs |
|---|
(+.f64 x (*.f64 z (cos.f64 y))) |
(+.f64 (+.f64 y x) z) |
(+.f64 x (*.f64 z (cos.f64 y))) |
3 calls:
| 21.0ms | x |
| 16.0ms | y |
| 9.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 6.1b | 3 | x |
| 5.9b | 3 | y |
| 7.7b | 1 | z |
Compiled 44 to 22 computations (50% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 20.0ms | 1.838925752387434e-10 | 8.302664761141523e-10 |
| 23.0ms | -12719.299308837206 | -13.726438911353345 |
| 40.0ms | 224× | body | 256 | valid |
Compiled 284 to 195 computations (31.3% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
(*.f64 (cos.f64 y) z) |
(+.f64 (sin.f64 y) z) |
| Outputs |
|---|
(+.f64 x z) |
(*.f64 (cos.f64 y) z) |
(+.f64 (sin.f64 y) z) |
(+.f64 x z) |
3 calls:
| 25.0ms | x |
| 20.0ms | z |
| 20.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 12.0b | 4 | x |
| 13.9b | 4 | y |
| 12.3b | 3 | z |
Compiled 38 to 20 computations (47.4% saved)
| 3× | binary-search |
| Time | Left | Right |
|---|---|---|
| 29.0ms | 5.739990400737015e-19 | 1.3726141944783121e-16 |
| 46.0ms | -1.0785237946885231e-209 | -6.516433081676051e-223 |
| 38.0ms | -2.45160561826861e-20 | -4.3727465879975824e-30 |
| 51.0ms | 100× | body | 1024 | valid |
| 46.0ms | 291× | body | 256 | valid |
| 12.0ms | 41× | body | 512 | valid |
Compiled 433 to 320 computations (26.1% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
(*.f64 (cos.f64 y) z) |
| Outputs |
|---|
(*.f64 (cos.f64 y) z) |
(+.f64 x z) |
(*.f64 (cos.f64 y) z) |
3 calls:
| 19.0ms | y |
| 19.0ms | z |
| 18.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 13.5b | 3 | x |
| 13.9b | 4 | y |
| 12.3b | 3 | z |
Compiled 34 to 19 computations (44.1% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 34.0ms | 6.269823916572374e+57 | 9.730918352388114e+69 |
| 30.0ms | -8.712573741896302e+179 | -3.094201801681178e+176 |
| 35.0ms | 225× | body | 256 | valid |
| 20.0ms | 45× | body | 1024 | valid |
| 5.0ms | 18× | body | 512 | valid |
Compiled 288 to 211 computations (26.7% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
| Outputs |
|---|
(+.f64 x z) |
(+.f64 (+.f64 y x) z) |
(sin.f64 y) |
(+.f64 (+.f64 y x) z) |
(+.f64 x z) |
3 calls:
| 21.0ms | x |
| 13.0ms | y |
| 5.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 15.9b | 5 | x |
| 16.6b | 3 | y |
| 18.4b | 1 | z |
Compiled 30 to 17 computations (43.3% saved)
| 4× | binary-search |
| Time | Left | Right |
|---|---|---|
| 43.0ms | 1.3513449604647432e-39 | 4.9165601643700254e-29 |
| 25.0ms | 1.6743316083330286e-199 | 7.481473099141871e-198 |
| 33.0ms | 6.596330407894827e-240 | 3.59589808070572e-236 |
| 23.0ms | -5.452048966541775e-93 | -3.6635072587481975e-94 |
| 57.0ms | 335× | body | 256 | valid |
| 43.0ms | 98× | body | 1024 | valid |
| 18.0ms | 63× | body | 512 | valid |
Compiled 499 to 354 computations (29.1% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
(+.f64 (+.f64 y x) z) |
| Outputs |
|---|
(+.f64 x z) |
(+.f64 (+.f64 y x) z) |
(+.f64 x z) |
3 calls:
| 12.0ms | y |
| 12.0ms | x |
| 5.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 16.9b | 3 | x |
| 16.6b | 3 | y |
| 18.4b | 1 | z |
Compiled 28 to 16 computations (42.9% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 1.838925752387434e-10 | 8.302664761141523e-10 |
| 23.0ms | -4.5699203020146646e+27 | -9.97189462394434e+23 |
| 37.0ms | 224× | body | 256 | valid |
Compiled 242 to 167 computations (31% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
(+.f64 z y) |
| Outputs |
|---|
(+.f64 x z) |
(+.f64 z y) |
(+.f64 x z) |
3 calls:
| 11.0ms | x |
| 4.0ms | y |
| 4.0ms | z |
| Error | Segments | Branch |
|---|---|---|
| 17.3b | 3 | x |
| 18.4b | 1 | y |
| 18.4b | 1 | z |
Compiled 23 to 14 computations (39.1% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 29.0ms | -3.159066328412826e-298 | -2.348139156927249e-300 |
| 39.0ms | -1.704080454590939e-129 | -4.0407991400740225e-140 |
| 28.0ms | 178× | body | 256 | valid |
| 27.0ms | 62× | body | 1024 | valid |
| 10.0ms | 32× | body | 512 | valid |
Compiled 256 to 183 computations (28.5% saved)
| Inputs |
|---|
y |
z |
(+.f64 x z) |
| Outputs |
|---|
(+.f64 x z) |
3 calls:
| 4.0ms | y |
| 3.0ms | z |
| 3.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 18.4b | 1 | x |
| 18.4b | 1 | y |
| 18.4b | 1 | z |
Compiled 20 to 13 computations (35% saved)
Total -16.3b remaining (-35.3%)
Threshold costs -16.3b (-35.3%)
| Inputs |
|---|
y |
z |
| Outputs |
|---|
z |
y |
z |
3 calls:
| 9.0ms | z |
| 3.0ms | x |
| 3.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 47.7b | 1 | x |
| 47.7b | 1 | y |
| 46.3b | 3 | z |
Compiled 17 to 12 computations (29.4% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 1.5033949299865331e-152 | 1.5625145209638726e-152 |
| 19.0ms | -2.2525691724140404e-188 | -3.961013049644386e-189 |
| 13.0ms | 82× | body | 256 | valid |
| 4.0ms | 10× | body | 1024 | valid |
| 1.0ms | 4× | body | 512 | valid |
Compiled 78 to 61 computations (21.8% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 77 | 465 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
(if (<=.f64 z -1000) (+.f64 x (*.f64 z (cos.f64 y))) (if (<=.f64 z 6779426540353309/713623846352979940529142984724747568191373312) (+.f64 (+.f64 x (sin.f64 y)) z) (+.f64 x (*.f64 z (cos.f64 y))))) |
(if (<=.f64 y -14) (+.f64 x (*.f64 z (cos.f64 y))) (if (<=.f64 y 7930553376671967/9671406556917033397649408) (+.f64 (+.f64 y x) z) (+.f64 x (*.f64 z (cos.f64 y))))) |
(if (<=.f64 x -8677200356483931/340282366920938463463374607431768211456) (+.f64 x z) (if (<=.f64 x -7012105641494901/94758184344525691842589080106353915726128296943157752144717531617800961467674370503593652882607817257720198406807316479868870852301929589321550737002025216015896910157522577243058183937475491017166931103132108688408987234729984) (*.f64 (cos.f64 y) z) (if (<=.f64 x 6490371073168535/5192296858534827628530496329220096) (+.f64 (sin.f64 y) z) (+.f64 x z)))) |
(if (<=.f64 z -330000000000000024952732538400507478228550868162350072227167630142754316818157195946215462560828680869997079378373219023233946332431700766461218127039857261284433740454764216320) (*.f64 (cos.f64 y) z) (if (<=.f64 z 290000000000000011456019420231672821846259659108058969483161431441408) (+.f64 x z) (*.f64 (cos.f64 y) z))) |
(if (<=.f64 x -5284220811241125/1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967488) (+.f64 x z) (if (<=.f64 x 357986298980937/28638903918474961204418783933674838490721739172170652529441449702311064005352904159345284265824628375429359509218999720074396860757073376700445026041564579620512874307979212102266801261478978776245040008231745247475930553606737583615358787106474295296) (+.f64 (+.f64 y x) z) (if (<=.f64 x 7325475661932327/43091033305484275771318189120554014028188383664727440257009917157939053808001686094755156265186004592451444480869811959505055188993505721246743058601180207922833192313884218148386109504588371699886434318219521032192) (sin.f64 y) (if (<=.f64 x 4190417494555165/1496577676626844588240573268701473812127674924007424) (+.f64 (+.f64 y x) z) (+.f64 x z))))) |
(if (<=.f64 y -8400000000000000503316480) (+.f64 x z) (if (<=.f64 y 7930553376671967/9671406556917033397649408) (+.f64 (+.f64 y x) z) (+.f64 x z))) |
(if (<=.f64 x -1726202078382731/6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280448) (+.f64 x z) (if (<=.f64 x -7238468646072529/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (+.f64 z y) (+.f64 x z))) |
(+.f64 x z) |
(if (<=.f64 z -6740863435464503/313528531882069915964662425689704934689422834087799421518938595239444503444259215719322355763768461419760165742407930953086580768238532773442734168210737755891992072530296122920016274326105279759841755136) z (if (<=.f64 z 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) y z)) |
y |
| Outputs |
|---|
(+.f64 (+.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y))) |
(if (<=.f64 z -1000) (+.f64 x (*.f64 z (cos.f64 y))) (if (<=.f64 z 6779426540353309/713623846352979940529142984724747568191373312) (+.f64 (+.f64 x (sin.f64 y)) z) (+.f64 x (*.f64 z (cos.f64 y))))) |
(if (<=.f64 y -14) (+.f64 x (*.f64 z (cos.f64 y))) (if (<=.f64 y 7930553376671967/9671406556917033397649408) (+.f64 (+.f64 y x) z) (+.f64 x (*.f64 z (cos.f64 y))))) |
(if (<=.f64 x -8677200356483931/340282366920938463463374607431768211456) (+.f64 x z) (if (<=.f64 x -7012105641494901/94758184344525691842589080106353915726128296943157752144717531617800961467674370503593652882607817257720198406807316479868870852301929589321550737002025216015896910157522577243058183937475491017166931103132108688408987234729984) (*.f64 (cos.f64 y) z) (if (<=.f64 x 6490371073168535/5192296858534827628530496329220096) (+.f64 (sin.f64 y) z) (+.f64 x z)))) |
(if (<=.f64 z -330000000000000024952732538400507478228550868162350072227167630142754316818157195946215462560828680869997079378373219023233946332431700766461218127039857261284433740454764216320) (*.f64 (cos.f64 y) z) (if (<=.f64 z 290000000000000011456019420231672821846259659108058969483161431441408) (+.f64 x z) (*.f64 (cos.f64 y) z))) |
(if (<=.f64 x -5284220811241125/1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967488) (+.f64 x z) (if (<=.f64 x 357986298980937/28638903918474961204418783933674838490721739172170652529441449702311064005352904159345284265824628375429359509218999720074396860757073376700445026041564579620512874307979212102266801261478978776245040008231745247475930553606737583615358787106474295296) (+.f64 (+.f64 y x) z) (if (<=.f64 x 7325475661932327/43091033305484275771318189120554014028188383664727440257009917157939053808001686094755156265186004592451444480869811959505055188993505721246743058601180207922833192313884218148386109504588371699886434318219521032192) (sin.f64 y) (if (<=.f64 x 4190417494555165/1496577676626844588240573268701473812127674924007424) (+.f64 (+.f64 y x) z) (+.f64 x z))))) |
(if (<=.f64 y -8400000000000000503316480) (+.f64 x z) (if (<=.f64 y 7930553376671967/9671406556917033397649408) (+.f64 (+.f64 y x) z) (+.f64 x z))) |
(if (<=.f64 x -1726202078382731/6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280448) (+.f64 x z) (if (<=.f64 x -7238468646072529/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (+.f64 z y) (+.f64 x z))) |
(+.f64 x z) |
(if (<=.f64 z -6740863435464503/313528531882069915964662425689704934689422834087799421518938595239444503444259215719322355763768461419760165742407930953086580768238532773442734168210737755891992072530296122920016274326105279759841755136) z (if (<=.f64 z 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) y z)) |
y |
Compiled 223 to 124 computations (44.4% saved)
Compiled 193 to 73 computations (62.2% saved)
Loading profile data...