
Time bar (total: 5.2s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 12.5% | 12.5% | 87.4% | 0.1% | 0% | 0% | 0% | 4 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 5 |
| 28.1% | 28.1% | 71.8% | 0.1% | 0% | 0% | 0% | 6 |
| 42.2% | 42.1% | 57.7% | 0.1% | 0% | 0% | 0% | 7 |
| 49.2% | 49.1% | 50.7% | 0.1% | 0% | 0% | 0% | 8 |
| 57.4% | 57.3% | 42.5% | 0.1% | 0% | 0% | 0% | 9 |
| 67% | 66.9% | 33% | 0.1% | 0% | 0% | 0% | 10 |
| 71.8% | 71.7% | 28.2% | 0.1% | 0% | 0% | 0% | 11 |
| 76.9% | 76.8% | 23.1% | 0.1% | 0% | 0% | 0% | 12 |
Compiled 20 to 15 computations (25% saved)
ival-mult, time spent: 37.0ms, 42.0% of total-timeival-pow, time spent: 22.0ms, 25.0% of total-timeival-cos, time spent: 20.0ms, 23.0% of total-timeival-div, time spent: 5.0ms, 6.0% of total-timeconst, time spent: 3.0ms, 3.0% of total-time| 1.1s | 5648× | 0 | valid |
| 426.0ms | 2607× | 0 | infinite |
| 0.0ms | 1× | 0 | valid |
ival-mult, time spent: 252.0ms, 36.0% of total-timeival-cos, time spent: 209.0ms, 30.0% of total-timeival-pow, time spent: 150.0ms, 21.0% of total-timeival-div, time spent: 60.0ms, 9.0% of total-timeconst, time spent: 34.0ms, 5.0% of total-time| 1× | egg-herbie |
| 1226× | div-sub |
| 1120× | unsub-neg |
| 740× | associate-/l* |
| 728× | distribute-lft-neg-in |
| 704× | associate-*r* |
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 x (pow.f64 s 2)) x) |
| 0 | 0 | - | 0 | - | x |
| 0 | 0 | - | 0 | - | (pow.f64 s 2) |
| 0 | 0 | - | 0 | - | (*.f64 2 x) |
| 0 | 0 | - | 0 | - | (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x)) |
| 0 | 0 | - | 0 | - | c |
| 0 | 0 | - | 0 | - | (*.f64 x (pow.f64 s 2)) |
| 0 | 0 | - | 0 | - | s |
| 0 | 0 | - | 0 | - | (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
| 0 | 0 | - | 0 | - | 2 |
| 0 | 0 | - | 0 | - | (pow.f64 c 2) |
| 0 | 0 | - | 0 | - | (cos.f64 (*.f64 2 x)) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 56 | 730 |
| 1 | 152 | 685 |
| 2 | 458 | 661 |
| 3 | 2534 | 661 |
| 4 | 6205 | 661 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 (neg.f64 x))) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 (neg.f64 x) (pow.f64 s 2)) (neg.f64 x)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 (neg.f64 c) 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 (neg.f64 s) 2)) x))) |
(neg.f64 (/.f64 (cos.f64 (*.f64 2 (neg.f64 x))) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 (neg.f64 x) (pow.f64 s 2)) (neg.f64 x))))) |
(neg.f64 (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 (neg.f64 c) 2) (*.f64 (*.f64 x (pow.f64 s 2)) x)))) |
(neg.f64 (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 (neg.f64 s) 2)) x)))) |
(/.f64 (cos.f64 (*.f64 2 c)) (*.f64 (pow.f64 x 2) (*.f64 (*.f64 c (pow.f64 s 2)) c))) |
(/.f64 (cos.f64 (*.f64 2 s)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 s (pow.f64 x 2)) s))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 s 2) (*.f64 (*.f64 x (pow.f64 c 2)) x))) |
| Outputs |
|---|
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 (neg.f64 x))) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 (neg.f64 x) (pow.f64 s 2)) (neg.f64 x)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 (neg.f64 c) 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 (neg.f64 s) 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(neg.f64 (/.f64 (cos.f64 (*.f64 2 (neg.f64 x))) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 (neg.f64 x) (pow.f64 s 2)) (neg.f64 x))))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 2 (neg.f64 x)))) (*.f64 (pow.f64 c 2) (*.f64 (neg.f64 x) (*.f64 (pow.f64 s 2) (neg.f64 x))))) |
(/.f64 (neg.f64 (/.f64 (cos.f64 (*.f64 x -2)) (pow.f64 c 2))) (neg.f64 (neg.f64 (*.f64 (pow.f64 s 2) (pow.f64 x 2))))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 x -2))) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 2 x))) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (neg.f64 (/.f64 (cos.f64 (*.f64 x -2)) (pow.f64 x 2))) (*.f64 (pow.f64 c 2) (pow.f64 s 2))) |
(neg.f64 (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 (neg.f64 c) 2) (*.f64 (*.f64 x (pow.f64 s 2)) x)))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 2 (neg.f64 x)))) (*.f64 (pow.f64 c 2) (*.f64 (neg.f64 x) (*.f64 (pow.f64 s 2) (neg.f64 x))))) |
(/.f64 (neg.f64 (/.f64 (cos.f64 (*.f64 x -2)) (pow.f64 c 2))) (neg.f64 (neg.f64 (*.f64 (pow.f64 s 2) (pow.f64 x 2))))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 x -2))) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 2 x))) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (neg.f64 (/.f64 (cos.f64 (*.f64 x -2)) (pow.f64 x 2))) (*.f64 (pow.f64 c 2) (pow.f64 s 2))) |
(neg.f64 (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 (neg.f64 s) 2)) x)))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 2 (neg.f64 x)))) (*.f64 (pow.f64 c 2) (*.f64 (neg.f64 x) (*.f64 (pow.f64 s 2) (neg.f64 x))))) |
(/.f64 (neg.f64 (/.f64 (cos.f64 (*.f64 x -2)) (pow.f64 c 2))) (neg.f64 (neg.f64 (*.f64 (pow.f64 s 2) (pow.f64 x 2))))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 x -2))) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (neg.f64 (cos.f64 (*.f64 2 x))) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (neg.f64 (/.f64 (cos.f64 (*.f64 x -2)) (pow.f64 x 2))) (*.f64 (pow.f64 c 2) (pow.f64 s 2))) |
(/.f64 (cos.f64 (*.f64 2 c)) (*.f64 (pow.f64 x 2) (*.f64 (*.f64 c (pow.f64 s 2)) c))) |
(/.f64 (cos.f64 (*.f64 2 c)) (*.f64 (pow.f64 x 2) (*.f64 c (*.f64 c (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 2 c)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (/.f64 (cos.f64 (*.f64 2 c)) (*.f64 (pow.f64 c 2) (pow.f64 s 2))) (pow.f64 x 2)) |
(/.f64 (cos.f64 (*.f64 2 s)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 s (pow.f64 x 2)) s))) |
(/.f64 (cos.f64 (*.f64 2 s)) (*.f64 (pow.f64 c 2) (*.f64 s (*.f64 s (pow.f64 x 2))))) |
(/.f64 (cos.f64 (*.f64 2 s)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 s 2) (*.f64 (*.f64 x (pow.f64 c 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
(abs x)
(abs c)
(abs s)
(sort c s)
Compiled 139 to 92 computations (33.8% saved)
ival-mult, time spent: 681.0ms, 44.0% of total-timeival-cos, time spent: 635.0ms, 41.0% of total-timeival-pow, time spent: 176.0ms, 11.0% of total-timeconst, time spent: 36.0ms, 2.0% of total-timeival-div, time spent: 28.0ms, 2.0% of total-timeCompiled 51 to 38 computations (25.5% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 54.5% | (/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
| ▶ | 59.7% | (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
Compiled 38 to 29 computations (23.7% saved)
Compiled 115 to 77 computations (33% saved)
ival-cos, time spent: 320.0ms, 35.0% of total-timeival-pow, time spent: 283.0ms, 31.0% of total-timeival-mult, time spent: 257.0ms, 28.0% of total-timeconst, time spent: 38.0ms, 4.0% of total-timeival-div, time spent: 27.0ms, 3.0% of total-timeCompiled 3 to 3 computations (0% saved)
2 alts after pruning (0 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 54.5% | (/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
| ✓ | 59.7% | (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
Compiled 73 to 55 computations (24.7% saved)
Total -3.4b remaining (-13.1%)
Threshold costs -3.4b (-13.1%)
| Inputs |
|---|
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 x -2)) (*.f64 (pow.f64 c 2) (*.f64 (pow.f64 s 2) (pow.f64 x 2)))) |
| Outputs |
|---|
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
6 calls:
| 5.0ms | c |
| 3.0ms | x |
| 3.0ms | s |
| 3.0ms | (pow.f64 s 2) |
| 2.0ms | (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 59.7% | 1 | x |
| 59.7% | 1 | c |
| 59.7% | 1 | s |
| 59.7% | 1 | (/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
| 59.7% | 1 | (pow.f64 c 2) |
| 59.7% | 1 | (pow.f64 s 2) |
Compiled 43 to 33 computations (23.3% saved)
| 1× | egg-herbie |
| 8× | *-commutative |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 62 |
| 1 | 23 | 62 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
| Outputs |
|---|
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 (*.f64 x (pow.f64 s 2)) x))) |
(/.f64 (cos.f64 (*.f64 2 x)) (*.f64 (pow.f64 c 2) (*.f64 x (*.f64 x (pow.f64 s 2))))) |
Compiled 19 to 14 computations (26.3% saved)
(abs s)
(abs x)
Compiled 532 to 392 computations (26.3% saved)
Loading profile data...