Time bar (total: 10.2s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.8% | 0.2% | 0 |
| 0% | 99.8% | 0.2% | 1 |
| 0% | 99.8% | 0.2% | 2 |
| 0% | 99.8% | 0.2% | 3 |
| 0% | 99.8% | 0.2% | 4 |
| 0% | 99.8% | 0.2% | 5 |
| 0% | 99.8% | 0.2% | 6 |
| 0% | 99.8% | 0.2% | 7 |
| 0% | 99.8% | 0.2% | 8 |
| 6.2% | 93.6% | 0.2% | 9 |
| 9.4% | 90.4% | 0.2% | 10 |
| 14% | 83.4% | 2.5% | 11 |
| 18.7% | 78.2% | 3.1% | 12 |
| 28.1% | 65.5% | 6.4% | 13 |
| 30.7% | 59.4% | 9.9% | 14 |
Compiled 20 to 12 computations (40% saved)
| 1.1s | 8256× | body | 128 | valid |
| 843.0ms | 6068× | body | 128 | invalid |
Compiled 59 to 35 computations (40.7% saved)
| 1× | egg-herbie |
| 1010× | fma-neg_binary64 |
| 443× | fma-def_binary64 |
| 399× | rules-40_binary64 |
| 399× | rules-41_binary64 |
| 399× | rules-42_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 22 |
| 1 | 78 | 20 |
| 2 | 301 | 20 |
| 3 | 1431 | 20 |
| 4 | 4336 | 20 |
| 5 | 4926 | 20 |
| 6 | 4919 | 20 |
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
| ▶ | 32.0b | (fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t))) |
| 36.6b | (+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t))) |
Compiled 107 to 55 computations (48.6% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 4.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t))) |
| ✓ | 12.1b | (/.f64 x (*.f64 y y)) |
| ✓ | 22.0b | (/.f64 (*.f64 z z) (*.f64 t t)) |
3 calls:
| 119.0ms | (fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t))) |
| 29.0ms | (/.f64 x (*.f64 y y)) |
| 28.0ms | (/.f64 (*.f64 z z) (*.f64 t t)) |
| 2× | batch-egg-rewrite |
| 851× | fma-neg_binary64 |
| 340× | prod-diff_binary64 |
| 191× | expm1-udef_binary64 |
| 191× | log1p-udef_binary64 |
| 110× | add-sqr-sqrt_binary64 |
3 calls:
| 83.0ms | (fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t))) |
| 83.0ms | (/.f64 x (*.f64 y y)) |
| 83.0ms | (/.f64 (*.f64 z z) (*.f64 t t)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 37 |
| 1 | 256 | 31 |
| 2 | 3071 | 31 |
| 3 | 5096 | 31 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 395× | fma-neg_binary64 |
| 274× | rules-40_binary64 |
| 274× | rules-41_binary64 |
| 274× | rules-42_binary64 |
| 274× | rules-43_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 960 |
| 1 | 80 | 960 |
| 2 | 248 | 960 |
| 3 | 999 | 960 |
| 4 | 3996 | 960 |
| 5 | 9 | 960 |
12 alts after pruning (12 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 99 | 12 | 111 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 101 | 12 | 113 |
| Status | Error | Program |
| ▶ | 15.6b | (pow.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 2) |
| 17.3b | (fma.f64 x (/.f64 x (*.f64 y y)) (exp.f64 (log.f64 (pow.f64 (/.f64 z t) 2)))) | |
| 16.1b | (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 3) | |
| 31.5b | (fma.f64 x (/.f64 x (*.f64 y y)) (cbrt.f64 (pow.f64 (pow.f64 (/.f64 z t) 2) 3))) | |
| 25.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (/.f64 z (*.f64 t t)))) | |
| 42.9b | (/.f64 (pow.f64 x 2) (pow.f64 y 2)) | |
| 41.8b | (fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (/.f64 (*.f64 z z) (*.f64 t t))) | |
| 32.3b | (fma.f64 x (*.f64 x (/.f64 1 (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t))) | |
| 27.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (sqrt.f64 (pow.f64 (pow.f64 (/.f64 z t) 2) 2))) | |
| 24.4b | (/.f64 (+.f64 (*.f64 z (/.f64 z t)) (*.f64 (*.f64 x (/.f64 x (*.f64 y y))) t)) t) | |
| 32.0b | (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (pow.f64 (pow.f64 (/.f64 z t) 2) 3) 1/3)) | |
| 49.7b | (/.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 3) (+.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 2) (+.f64 0 (*.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 0)))) |
Compiled 2464 to 945 computations (61.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.4b | (pow.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 2) |
| ✓ | 4.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) |
| ✓ | 5.2b | (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) |
| 12.1b | (/.f64 x (*.f64 y y)) |
3 calls:
| 340.0ms | (pow.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 2) |
| 75.0ms | (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) |
| 65.0ms | (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) |
| 2× | batch-egg-rewrite |
| 833× | fma-neg_binary64 |
| 276× | prod-diff_binary64 |
| 202× | expm1-udef_binary64 |
| 202× | log1p-udef_binary64 |
| 174× | egg-rr |
3 calls:
| 97.0ms | (pow.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 2) |
| 97.0ms | (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) |
| 97.0ms | (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 53 |
| 1 | 281 | 53 |
| 2 | 3176 | 53 |
| 3 | 5079 | 53 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 672× | rules-40_binary64 |
| 672× | rules-41_binary64 |
| 672× | rules-42_binary64 |
| 672× | rules-43_binary64 |
| 670× | rules-21_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 81 | 3730 |
| 1 | 553 | 3658 |
| 2 | 2414 | 3658 |
| 3 | 4652 | 3658 |
| 4 | 4971 | 3658 |
10 alts after pruning (10 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 192 | 4 | 196 |
| Fresh | 5 | 6 | 11 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 198 | 10 | 208 |
| Status | Error | Program |
| 16.1b | (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 3) | |
| 31.5b | (fma.f64 x (/.f64 x (*.f64 y y)) (cbrt.f64 (pow.f64 (pow.f64 (/.f64 z t) 2) 3))) | |
| 25.3b | (pow.f64 (/.f64 x y) 2) | |
| 24.4b | (/.f64 (+.f64 (*.f64 z (/.f64 z t)) (*.f64 (*.f64 x (/.f64 x (*.f64 y y))) t)) t) | |
| 25.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (/.f64 z (*.f64 t t)))) | |
| 42.9b | (/.f64 (pow.f64 x 2) (pow.f64 y 2)) | |
| ▶ | 15.6b | (fma.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) (*.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4)) 0) |
| 41.8b | (fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (/.f64 (*.f64 z z) (*.f64 t t))) | |
| 15.8b | (fma.f64 (pow.f64 (cbrt.f64 (/.f64 z t)) 2) (*.f64 (cbrt.f64 (/.f64 z t)) (/.f64 z t)) (neg.f64 (-.f64 0 (*.f64 x (/.f64 x (*.f64 y y)))))) | |
| 29.5b | (pow.f64 (/.f64 z t) 2) |
Compiled 6050 to 2840 computations (53.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 4.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) | |
| 5.2b | (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) | |
| ✓ | 7.2b | (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) |
| 12.1b | (/.f64 x (*.f64 y y)) |
1 calls:
| 164.0ms | (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) |
| 2× | batch-egg-rewrite |
| 862× | fma-neg_binary64 |
| 274× | prod-diff_binary64 |
| 219× | expm1-udef_binary64 |
| 219× | log1p-udef_binary64 |
| 125× | add-sqr-sqrt_binary64 |
1 calls:
| 81.0ms | (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 20 |
| 1 | 302 | 20 |
| 2 | 3395 | 20 |
| 3 | 5340 | 20 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 574× | fma-neg_binary64 |
| 455× | rules-20_binary64 |
| 404× | rules-41_binary64 |
| 404× | rules-43_binary64 |
| 402× | rules-40_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 225 | 3500 |
| 1 | 1660 | 3456 |
| 2 | 5120 | 3456 |
11 alts after pruning (10 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 538 | 2 | 540 |
| Fresh | 1 | 8 | 9 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 539 | 11 | 550 |
| Status | Error | Program |
| ▶ | 15.7b | (fma.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) (*.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 2) 1/4) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 1/4))) 0) |
| ✓ | 15.6b | (fma.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) (*.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4)) 0) |
| 38.6b | (fma.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) (*.f64 (/.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 3/2) (+.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) (-.f64 0 (*.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 0)))) (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4)) 0) | |
| 25.3b | (pow.f64 (/.f64 x y) 2) | |
| 24.4b | (/.f64 (+.f64 (*.f64 z (/.f64 z t)) (*.f64 (*.f64 x (/.f64 x (*.f64 y y))) t)) t) | |
| 25.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (/.f64 z (*.f64 t t)))) | |
| 42.9b | (/.f64 (pow.f64 x 2) (pow.f64 y 2)) | |
| 41.8b | (fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (/.f64 (*.f64 z z) (*.f64 t t))) | |
| 15.8b | (fma.f64 (pow.f64 (cbrt.f64 (/.f64 z t)) 2) (*.f64 (cbrt.f64 (/.f64 z t)) (/.f64 z t)) (neg.f64 (-.f64 0 (*.f64 x (/.f64 x (*.f64 y y)))))) | |
| 16.1b | (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 3) | |
| 29.5b | (pow.f64 (/.f64 z t) 2) |
Compiled 35091 to 16691 computations (52.4% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 5.2b | (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) | |
| 7.2b | (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) | |
| ✓ | 7.6b | (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) |
| 12.1b | (/.f64 x (*.f64 y y)) |
1 calls:
| 166.0ms | (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) |
| 2× | batch-egg-rewrite |
| 829× | fma-neg_binary64 |
| 276× | prod-diff_binary64 |
| 202× | expm1-udef_binary64 |
| 202× | log1p-udef_binary64 |
| 116× | add-sqr-sqrt_binary64 |
1 calls:
| 68.0ms | (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 19 |
| 1 | 273 | 19 |
| 2 | 3164 | 19 |
| 3 | 5072 | 19 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 567× | fma-neg_binary64 |
| 450× | rules-20_binary64 |
| 410× | rules-41_binary64 |
| 410× | rules-43_binary64 |
| 408× | rules-40_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 218 | 3640 |
| 1 | 1598 | 3600 |
| 2 | 5082 | 3600 |
10 alts after pruning (9 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 500 | 1 | 501 |
| Fresh | 1 | 8 | 9 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 0 | 1 |
| Total | 502 | 10 | 512 |
| Status | Error | Program |
| 25.3b | (pow.f64 (/.f64 x y) 2) | |
| 24.4b | (/.f64 (+.f64 (*.f64 z (/.f64 z t)) (*.f64 (*.f64 x (/.f64 x (*.f64 y y))) t)) t) | |
| 25.2b | (fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (/.f64 z (*.f64 t t)))) | |
| 42.9b | (/.f64 (pow.f64 x 2) (pow.f64 y 2)) | |
| ✓ | 15.7b | (fma.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) (*.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 2) 1/4) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 1/4))) 0) |
| 41.8b | (fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (/.f64 (*.f64 z z) (*.f64 t t))) | |
| 15.8b | (fma.f64 (pow.f64 (cbrt.f64 (/.f64 z t)) 2) (*.f64 (cbrt.f64 (/.f64 z t)) (/.f64 z t)) (neg.f64 (-.f64 0 (*.f64 x (/.f64 x (*.f64 y y)))))) | |
| 15.8b | (fma.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 1/4) (*.f64 (sqrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) (*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)))) 3) 2) 1/4) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 1/4))) 0) | |
| 16.1b | (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))) 3) | |
| 29.5b | (pow.f64 (/.f64 z t) 2) |
Compiled 42343 to 21888 computations (48.3% saved)
Total 5.6b remaining (94.5%)
Threshold costs 0b (0%)
Compiled 41268 to 23138 computations (43.9% saved)
Compiled 11 to 7 computations (36.4% saved)
| 1× | egg-herbie |
| 1× | 1-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 42 |
| 1 | 23 | 42 |
| 2 | 22 | 42 |
Compiled 338 to 197 computations (41.7% saved)
Loading profile data...