Time bar (total: 4.3s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 50% | 50% | 0.1% | 3 |
| 50% | 50% | 0.1% | 4 |
| 62.4% | 37.5% | 0.1% | 5 |
| 62.4% | 37.5% | 0.1% | 6 |
| 68.7% | 31.2% | 0.1% | 7 |
| 68.7% | 31.2% | 0.1% | 8 |
| 71.8% | 28.1% | 0.1% | 9 |
| 71.8% | 28.1% | 0.1% | 10 |
| 73.4% | 26.5% | 0.1% | 11 |
| 73.4% | 26.5% | 0.1% | 12 |
| 74.1% | 25.8% | 0.1% | 13 |
| 74.1% | 25.8% | 0.1% | 14 |
Compiled 18 to 13 computations (27.8% saved)
| 748.0ms | 6197× | body | 128 | valid |
| 347.0ms | 576× | body | 4096 | valid |
| 330.0ms | 653× | body | 2048 | valid |
| 176.0ms | 448× | body | 1024 | valid |
| 79.0ms | 253× | body | 512 | valid |
| 26.0ms | 129× | body | 256 | valid |
Compiled 53 to 38 computations (28.3% saved)
| 1× | egg-herbie |
| 6× | fma-def_binary64 |
| 4× | *-commutative_binary64 |
| 2× | +-commutative_binary64 |
| 2× | distribute-lft-in_binary64 |
| 2× | distribute-rgt-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 15 |
| 1 | 25 | 15 |
| 2 | 29 | 15 |
| 3 | 31 | 15 |
| 4 | 31 | 15 |
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 |
| ▶ | 14.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
| 41.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) |
Compiled 85 to 61 computations (28.2% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (hypot.f64 re im) |
| ✓ | 0.2b | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| ✓ | 1.2b | (+.f64 re (hypot.f64 re im)) |
3 calls:
| 29.0ms | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| 9.0ms | (hypot.f64 re im) |
| 9.0ms | (+.f64 re (hypot.f64 re im)) |
| 2× | batch-egg-rewrite |
| 844× | log1p-expm1-u_binary64 |
| 844× | expm1-log1p-u_binary64 |
| 589× | prod-diff_binary64 |
| 88× | add-sqr-sqrt_binary64 |
| 84× | add-log-exp_binary64 |
3 calls:
| 58.0ms | (hypot.f64 re im) |
| 58.0ms | (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))) |
| 58.0ms | (+.f64 re (hypot.f64 re im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 23 |
| 1 | 177 | 23 |
| 2 | 2126 | 23 |
| 3 | 6259 | 23 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 744× | fma-neg_binary64 |
| 527× | fma-def_binary64 |
| 416× | associate-*r*_binary64 |
| 335× | associate-*l*_binary64 |
| 287× | cancel-sign-sub-inv_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 138 | 1348 |
| 1 | 411 | 1280 |
| 2 | 1256 | 1216 |
| 3 | 4693 | 1216 |
| 4 | 5232 | 1216 |
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 148 | 6 | 154 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 149 | 7 | 156 |
| Status | Error | Program |
| 14.8b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)) | |
| ✓ | 14.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
| 53.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ▶ | 14.5b | (*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))) |
| 44.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| 48.7b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| 57.1b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))))) |
Compiled 3192 to 2160 computations (32.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (sqrt.f64 (+.f64 re (hypot.f64 re im))) |
| 0.0b | (hypot.f64 re im) | |
| ✓ | 0.4b | (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)) |
| 1.2b | (+.f64 re (hypot.f64 re im)) |
2 calls:
| 27.0ms | (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)) |
| 20.0ms | (sqrt.f64 (+.f64 re (hypot.f64 re im))) |
| 2× | batch-egg-rewrite |
| 856× | log1p-expm1-u_binary64 |
| 856× | expm1-log1p-u_binary64 |
| 506× | prod-diff_binary64 |
| 92× | add-sqr-sqrt_binary64 |
| 88× | add-log-exp_binary64 |
2 calls:
| 54.0ms | (sqrt.f64 (+.f64 re (hypot.f64 re im))) |
| 53.0ms | (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 21 |
| 1 | 190 | 21 |
| 2 | 2184 | 21 |
| 3 | 6175 | 21 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 999× | fma-neg_binary64 |
| 527× | fma-def_binary64 |
| 439× | associate-*r*_binary64 |
| 360× | associate-*l*_binary64 |
| 310× | cancel-sign-sub-inv_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 800 |
| 1 | 339 | 731 |
| 2 | 1119 | 664 |
| 3 | 4613 | 664 |
| 4 | 5488 | 664 |
7 alts after pruning (5 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 186 | 0 | 186 |
| Fresh | 0 | 5 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 186 | 7 | 193 |
| Status | Error | Program |
| ▶ | 14.8b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)) |
| ✓ | 14.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
| 53.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ✓ | 14.5b | (*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))) |
| 44.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| 48.7b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| 57.1b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))))) |
Compiled 4107 to 2841 computations (30.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.0b | (hypot.f64 re im) | |
| ✓ | 0.3b | (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) |
| ✓ | 0.4b | (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2) |
| 1.2b | (+.f64 re (hypot.f64 re im)) |
2 calls:
| 37.0ms | (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2) |
| 29.0ms | (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) |
| 2× | batch-egg-rewrite |
| 506× | prod-diff_binary64 |
| 460× | log-prod_binary64 |
| 201× | fma-def_binary64 |
| 180× | expm1-udef_binary64 |
| 180× | log1p-udef_binary64 |
2 calls:
| 54.0ms | (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) |
| 54.0ms | (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 26 |
| 1 | 225 | 25 |
| 2 | 2456 | 25 |
| 3 | 5082 | 25 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 746× | fma-def_binary64 |
| 324× | associate-/r/_binary64 |
| 307× | cancel-sign-sub-inv_binary64 |
| 187× | unswap-sqr_binary64 |
| 179× | associate-*r*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 273 | 2695 |
| 1 | 774 | 2559 |
| 2 | 2527 | 2357 |
| 3 | 5040 | 2357 |
14 alts after pruning (11 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 255 | 7 | 262 |
| Fresh | 0 | 4 | 4 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 255 | 14 | 269 |
| Status | Error | Program |
| 53.9b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2) 2) 1/4) 2)) | |
| 53.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ✓ | 14.8b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)) |
| ✓ | 14.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
| 46.0b | (*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 1 im))))) 2)) | |
| 48.7b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| 57.3b | (*.f64 1/2 (pow.f64 (exp.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 1/2)) | |
| 57.1b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))))) | |
| ✓ | 14.5b | (*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))) |
| 48.7b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (neg.f64 im) 2) 1/4) 2)) | |
| 52.8b | (*.f64 1/2 (pow.f64 (fma.f64 (*.f64 (*.f64 (/.f64 im re) (/.f64 im re)) (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) -1/16 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) 2)) | |
| ▶ | 44.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) |
| 49.8b | (*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 -1 im))))) 2)) | |
| 46.2b | (*.f64 1/2 (pow.f64 (exp.f64 (+.f64 (log.f64 2) (log.f64 im))) 1/2)) |
Compiled 7516 to 5555 computations (26.1% saved)
Found 1 expressions with local error:
| New | Error | Program |
| ✓ | 0.2b | (sqrt.f64 (*.f64 2 im)) |
1 calls:
| 5.0ms | (sqrt.f64 (*.f64 2 im)) |
| 2× | batch-egg-rewrite |
| 706× | log1p-udef_binary64 |
| 392× | log1p-expm1-u_binary64 |
| 392× | expm1-log1p-u_binary64 |
| 340× | unpow-prod-down_binary64 |
| 338× | pow1_binary64 |
1 calls:
| 71.0ms | (sqrt.f64 (*.f64 2 im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 6 |
| 1 | 100 | 6 |
| 2 | 1053 | 6 |
| 3 | 4712 | 6 |
| 4 | 5794 | 6 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 0 |
16 alts after pruning (13 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 52 | 4 | 56 |
| Fresh | 1 | 9 | 10 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 3 | 3 |
| Total | 54 | 16 | 70 |
| Status | Error | Program |
| 53.9b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2) 2) 1/4) 2)) | |
| 53.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ✓ | 14.8b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)) |
| ✓ | 14.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))) |
| 46.8b | (*.f64 1/2 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))))) | |
| 46.0b | (*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 1 im))))) 2)) | |
| 48.7b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im)))) | |
| 57.3b | (*.f64 1/2 (pow.f64 (exp.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 1/2)) | |
| 57.1b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16)))))) | |
| ✓ | 14.5b | (*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))) |
| 48.7b | (*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (neg.f64 im) 2) 1/4) 2)) | |
| 48.4b | (*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (+.f64 im im) 5/4) 1/3) (cbrt.f64 (pow.f64 (+.f64 im im) 1/4)))) | |
| 49.8b | (*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 4) 1/3) (cbrt.f64 (pow.f64 (+.f64 im im) 1/6)))) | |
| 52.8b | (*.f64 1/2 (pow.f64 (fma.f64 (*.f64 (*.f64 (/.f64 im re) (/.f64 im re)) (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) -1/16 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) 2)) | |
| 49.8b | (*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 -1 im))))) 2)) | |
| 46.3b | (*.f64 1/2 (pow.f64 (exp.f64 1/2) (log.f64 (+.f64 im im)))) |
Compiled 927 to 599 computations (35.4% saved)
Total 4.8b remaining (50.4%)
Threshold costs 0b (0%)
Compiled 7881 to 6372 computations (19.1% saved)
Compiled 12 to 7 computations (41.7% saved)
| 1× | egg-herbie |
| 5× | *-commutative_binary64 |
| 3× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 35 | 123 |
| 1 | 43 | 123 |
| 2 | 43 | 123 |
Compiled 445 to 314 computations (29.4% saved)
Loading profile data...