
Time bar (total: 4.0s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 0 |
| 100% | 0% | 0% | 100% | 0% | 0% | 0% | 1 |
Compiled 24 to 16 computations (33.3% saved)
ival-sub, time spent: 0.0ms, 0.0% of total-timeival-mult, time spent: 0.0ms, 0.0% of total-timeconst, time spent: 0.0ms, 0.0% of total-timeival-pow, time spent: 0.0ms, 0.0% of total-timeival-and, time spent: 0.0ms, 0.0% of total-timeival-==, time spent: 0.0ms, 0.0% of total-time| 1.3s | 8255× | 0 | valid |
| 0.0ms | 1× | 0 | valid |
ival-sub, time spent: 289.0ms, 40.0% of total-timeival-mult, time spent: 179.0ms, 25.0% of total-timeival-==, time spent: 108.0ms, 15.0% of total-timeival-pow, time spent: 102.0ms, 14.0% of total-timeconst, time spent: 33.0ms, 5.0% of total-timeival-and, time spent: 13.0ms, 2.0% of total-time| 1× | egg-herbie |
| 1006× | fma-neg |
| 882× | distribute-lft-neg-in |
| 756× | distribute-rgt-neg-in |
| 734× | unswap-sqr |
| 694× | sub-neg |
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | x |
| 0 | 0 | - | 0 | - | (pow.f64 x 4) |
| 0 | 0 | - | 0 | - | (*.f64 y y) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)) |
| 0 | 0 | - | 0 | - | 9 |
| 0 | 0 | - | 0 | - | (*.f64 9 (pow.f64 x 4)) |
| 0 | 0 | - | 0 | - | 4 |
| 0 | 0 | - | 0 | - | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| 0 | 0 | - | 0 | - | 2 |
| 0 | 0 | - | 0 | - | (-.f64 (*.f64 y y) 2) |
Useful iterations: 10 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 34 | 378 |
| 1 | 99 | 357 |
| 2 | 274 | 357 |
| 3 | 914 | 336 |
| 4 | 2508 | 336 |
| 5 | 4520 | 336 |
| 6 | 5967 | 336 |
| 7 | 6558 | 336 |
| 8 | 7091 | 336 |
| 9 | 7451 | 336 |
| 10 | 7780 | 308 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2))) |
(neg.f64 (-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))) |
(neg.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2)))) |
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 2))) |
| Outputs |
|---|
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2)))) |
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4))) |
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4)) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2)))) |
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4))) |
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4)) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2)))) |
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4))) |
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4)) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2)))) |
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4))) |
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4)) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(neg.f64 (-.f64 (*.f64 9 (pow.f64 (neg.f64 x) 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2)))) |
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4))) |
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4)) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(neg.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) 2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 y (*.f64 y (fma.f64 y y -2)))) |
(fma.f64 9 (pow.f64 x 4) (*.f64 (pow.f64 y 2) (neg.f64 (fma.f64 y y -2)))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (fma.f64 y y -2) (pow.f64 y 2))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 2) -2 (pow.f64 y 4))) |
(-.f64 (fma.f64 2 (pow.f64 y 2) (*.f64 9 (pow.f64 x 4))) (pow.f64 y 4)) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 2))) |
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 x (*.f64 x (fma.f64 x x -2)))) |
(-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (pow.f64 x 2) (fma.f64 x x -2))) |
(fma.f64 9 (pow.f64 y 4) (-.f64 (*.f64 2 (pow.f64 x 2)) (pow.f64 x 4))) |
(-.f64 (fma.f64 9 (pow.f64 y 4) (*.f64 2 (pow.f64 x 2))) (pow.f64 x 4)) |
(fma.f64 9 (pow.f64 y 4) (fma.f64 2 (pow.f64 x 2) (pow.f64 x 4))) |
(abs x)
(abs y)
(negabs x)
(negabs y)
Compiled 113 to 63 computations (44.2% saved)
ival-sub, time spent: 272.0ms, 46.0% of total-timeival-mult, time spent: 146.0ms, 25.0% of total-timeival-pow, time spent: 140.0ms, 24.0% of total-timeconst, time spent: 30.0ms, 5.0% of total-timeCompiled 85 to 63 computations (25.9% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 9.6% | (fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
| ▶ | 3.1% | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
Compiled 32 to 23 computations (28.1% saved)
Compiled 83 to 51 computations (38.6% saved)
ival-pow, time spent: 202.0ms, 41.0% of total-timeival-sub, time spent: 128.0ms, 26.0% of total-timeival-mult, time spent: 67.0ms, 14.0% of total-timeival-fma, time spent: 63.0ms, 13.0% of total-timeconst, time spent: 30.0ms, 6.0% of total-timeCompiled 2 to 2 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 |
|---|---|---|
| ✓ | 9.6% | (fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
| ✓ | 3.1% | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
Compiled 62 to 44 computations (29% saved)
| Inputs |
|---|
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
| Outputs |
|---|
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
7 calls:
| 3.0ms | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| 2.0ms | (*.f64 9 (pow.f64 x 4)) |
| 2.0ms | (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)) |
| 2.0ms | (*.f64 y y) |
| 2.0ms | (pow.f64 x 4) |
| Accuracy | Segments | Branch |
|---|---|---|
| 9.6% | 1 | x |
| 9.6% | 1 | y |
| 9.6% | 1 | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| 9.6% | 1 | (*.f64 9 (pow.f64 x 4)) |
| 9.6% | 1 | (pow.f64 x 4) |
| 9.6% | 1 | (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)) |
| 9.6% | 1 | (*.f64 y y) |
Compiled 51 to 34 computations (33.3% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| Outputs |
|---|
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
7 calls:
| 2.0ms | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| 2.0ms | (*.f64 9 (pow.f64 x 4)) |
| 2.0ms | (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)) |
| 1.0ms | (pow.f64 x 4) |
| 1.0ms | (*.f64 y y) |
| Accuracy | Segments | Branch |
|---|---|---|
| 3.1% | 1 | x |
| 3.1% | 1 | y |
| 3.1% | 1 | (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| 3.1% | 1 | (*.f64 9 (pow.f64 x 4)) |
| 3.1% | 1 | (pow.f64 x 4) |
| 3.1% | 1 | (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2)) |
| 3.1% | 1 | (*.f64 y y) |
Compiled 51 to 34 computations (33.3% saved)
| 1× | egg-herbie |
| 148× | unsub-neg |
| 82× | neg-mul-1 |
| 42× | distribute-lft-neg-in |
| 38× | distribute-neg-out |
| 28× | distribute-lft-neg-out |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 102 |
| 1 | 31 | 102 |
| 2 | 49 | 102 |
| 3 | 62 | 102 |
| 4 | 82 | 102 |
| 5 | 88 | 102 |
| 6 | 93 | 102 |
| 7 | 122 | 102 |
| 8 | 164 | 102 |
| 9 | 168 | 102 |
| 10 | 185 | 102 |
| 11 | 253 | 102 |
| 12 | 314 | 102 |
| 13 | 315 | 102 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
| Outputs |
|---|
(fma.f64 9 (pow.f64 x 4) (fma.f64 2 (pow.f64 y 2) (pow.f64 y 4))) |
(-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) 2))) |
(+.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 y y) (-.f64 2 (*.f64 y y)))) |
Compiled 32 to 23 computations (28.1% saved)
| 1006× | fma-neg |
| 882× | distribute-lft-neg-in |
| 756× | distribute-rgt-neg-in |
| 734× | unswap-sqr |
| 694× | sub-neg |
Useful iterations: 10 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 34 | 378 |
| 1 | 99 | 357 |
| 2 | 274 | 357 |
| 3 | 914 | 336 |
| 4 | 2508 | 336 |
| 5 | 4520 | 336 |
| 6 | 5967 | 336 |
| 7 | 6558 | 336 |
| 8 | 7091 | 336 |
| 9 | 7451 | 336 |
| 10 | 7780 | 308 |
| 1× | node limit |
(negabs y)
(negabs x)
(abs y)
(abs x)
Compiled 454 to 352 computations (22.5% saved)
Loading profile data...