Time bar (total: 4.7s)
| 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 |
| 6.2% | 93.6% | 0.2% | 8 |
| 25% | 74.9% | 0.2% | 9 |
| 28.1% | 71.7% | 0.2% | 10 |
| 29.6% | 70.2% | 0.2% | 11 |
| 53% | 46.8% | 0.2% | 12 |
| 71.3% | 28.5% | 0.2% | 13 |
| 71.7% | 28.1% | 0.2% | 14 |
Compiled 20 to 12 computations (40% saved)
| 1.1s | 8256× | body | 128 | valid |
| 61.0ms | 488× | body | 128 | invalid |
Compiled 40 to 24 computations (40% saved)
| 2× | egg-herbie |
| 905× | fma-def_binary64 |
| 532× | associate-/l*_binary64 |
| 381× | fma-neg_binary64 |
| 305× | div-sub_binary64 |
| 300× | cancel-sign-sub-inv_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 39 | 140 |
| 1 | 122 | 140 |
| 2 | 243 | 140 |
| 3 | 398 | 140 |
| 4 | 872 | 140 |
| 5 | 1687 | 140 |
| 6 | 3097 | 140 |
| 0 | 4 | 4 |
| 1× | saturated |
| 1× | node limit |
Compiled 19 to 11 computations (42.1% saved)
| 1× | egg-herbie |
| 832× | fma-def_binary64 |
| 768× | times-frac_binary64 |
| 756× | fma-neg_binary64 |
| 281× | associate-/l*_binary64 |
| 228× | div-sub_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 20 |
| 1 | 25 | 20 |
| 2 | 51 | 20 |
| 3 | 82 | 20 |
| 4 | 166 | 20 |
| 5 | 297 | 20 |
| 6 | 488 | 20 |
| 7 | 738 | 20 |
| 8 | 1199 | 20 |
| 9 | 1800 | 20 |
| 10 | 2769 | 20 |
| 11 | 4928 | 20 |
| 1× | node limit |
1 alts after pruning (1 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 2 | 1 | 3 |
| Status | Error | Program |
| ▶ | 28.4b | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
Compiled 69 to 35 computations (49.3% saved)
Found 2 expressions with local error:
| New | Error | Program |
| ✓ | 0.5b | (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) |
| ✓ | 27.9b | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) |
24 calls:
| 12.0ms | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) | x.im | 0 |
| 11.0ms | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) | x.im | inf |
| 11.0ms | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) | x.re | inf |
| 9.0ms | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) | x.re | -inf |
| 9.0ms | (/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im))) | x.im | -inf |
| 1× | batch-egg-rewrite |
| 527× | log-prod_binary64 |
| 286× | prod-diff_binary64 |
| 190× | expm1-udef_binary64 |
| 190× | log1p-udef_binary64 |
| 164× | log-pow_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 30 |
| 1 | 226 | 25 |
| 2 | 2902 | 25 |
| 1× | node limit |
| 1× | egg-herbie |
| 643× | fma-def_binary64 |
| 469× | cancel-sign-sub-inv_binary64 |
| 419× | associate-/r/_binary64 |
| 414× | fma-neg_binary64 |
| 298× | associate-/l/_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 47 | 1722 |
| 1 | 133 | 1638 |
| 2 | 390 | 1599 |
| 3 | 1836 | 1554 |
| 1× | node limit |
9 alts after pruning (9 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 83 | 9 | 92 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 84 | 9 | 93 |
| Status | Error | Program |
| ▶ | 28.6b | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) |
| 40.8b | (/.f64 x.im (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.re)) | |
| 33.6b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re))) | |
| 32.1b | (-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im)) | |
| 37.9b | (/.f64 x.im y.re) | |
| 36.5b | (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (hypot.f64 y.im y.re))) | |
| 44.6b | (sqrt.f64 (pow.f64 (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (pow.f64 (hypot.f64 y.im y.re) 2)) 2)) | |
| 30.5b | (fma.f64 x.im (/.f64 (/.f64 y.re y.im) y.im) (/.f64 (neg.f64 x.re) y.im)) | |
| 38.0b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im (*.f64 y.re y.re)) (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re)))) |
Compiled 1968 to 719 computations (63.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (hypot.f64 y.im y.re) |
| ✓ | 0.5b | (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))) |
| ✓ | 0.7b | (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) |
| ✓ | 27.7b | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) |
36 calls:
| 17.0ms | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) | x.im | inf |
| 16.0ms | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) | x.im | -inf |
| 15.0ms | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) | x.re | inf |
| 15.0ms | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) | x.re | 0 |
| 14.0ms | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) | x.im | 0 |
| 1× | batch-egg-rewrite |
| 253× | expm1-udef_binary64 |
| 253× | log1p-udef_binary64 |
| 161× | add-sqr-sqrt_binary64 |
| 157× | pow1_binary64 |
| 155× | *-un-lft-identity_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 47 |
| 1 | 327 | 43 |
| 2 | 4259 | 43 |
| 1× | node limit |
| 1× | egg-herbie |
| 505× | times-frac_binary64 |
| 338× | associate-/l*_binary64 |
| 307× | sub-neg_binary64 |
| 247× | associate-/r*_binary64 |
| 228× | fma-def_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 114 | 2810 |
| 1 | 326 | 2708 |
| 2 | 989 | 2653 |
| 3 | 4769 | 2653 |
| 1× | node limit |
9 alts after pruning (8 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 212 | 5 | 217 |
| Fresh | 5 | 3 | 8 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 217 | 9 | 226 |
| Status | Error | Program |
| ✓ | 28.6b | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) |
| 33.6b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re))) | |
| 32.1b | (-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im)) | |
| 31.4b | (-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im)) | |
| ▶ | 26.3b | (-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im))) |
| 36.5b | (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (hypot.f64 y.im y.re))) | |
| 34.5b | (-.f64 (fma.f64 (/.f64 x.im y.im) (/.f64 y.re y.im) (/.f64 y.re (/.f64 (pow.f64 y.im 3) (*.f64 y.re x.re)))) (/.f64 x.re y.im)) | |
| 34.5b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re)) | |
| 28.4b | (/.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))) (pow.f64 (hypot.f64 y.im y.re) 2)) |
Compiled 5275 to 2354 computations (55.4% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 3.8b | (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) |
| ✓ | 4.5b | (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)) |
| ✓ | 19.3b | (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))) |
| ✓ | 20.2b | (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im) |
30 calls:
| 18.0ms | (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) | x.im | -inf |
| 16.0ms | (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)) | x.re | -inf |
| 15.0ms | (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)) | x.re | 0 |
| 14.0ms | (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) | x.im | 0 |
| 14.0ms | (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) | x.im | inf |
| 1× | batch-egg-rewrite |
| 218× | expm1-udef_binary64 |
| 218× | log1p-udef_binary64 |
| 191× | log-pow_binary64 |
| 175× | log-div_binary64 |
| 140× | prod-diff_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 50 |
| 1 | 237 | 46 |
| 2 | 3358 | 46 |
| 1× | node limit |
| 1× | egg-herbie |
| 496× | times-frac_binary64 |
| 406× | associate-/l*_binary64 |
| 313× | associate-/r*_binary64 |
| 237× | sub-neg_binary64 |
| 226× | cancel-sign-sub-inv_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 103 | 2568 |
| 1 | 266 | 2520 |
| 2 | 844 | 2397 |
| 3 | 4723 | 2397 |
| 1× | node limit |
10 alts after pruning (8 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 188 | 1 | 189 |
| Fresh | 0 | 7 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 188 | 10 | 198 |
| Status | Error | Program |
| ✓ | 28.6b | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) |
| 33.6b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re))) | |
| 32.1b | (-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im)) | |
| 31.4b | (-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im)) | |
| ✓ | 26.3b | (-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im))) |
| 36.5b | (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (hypot.f64 y.im y.re))) | |
| 34.5b | (-.f64 (fma.f64 (/.f64 x.im y.im) (/.f64 y.re y.im) (/.f64 y.re (/.f64 (pow.f64 y.im 3) (*.f64 y.re x.re)))) (/.f64 x.re y.im)) | |
| 34.5b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re)) | |
| 28.4b | (/.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))) (pow.f64 (hypot.f64 y.im y.re) 2)) | |
| ▶ | 16.9b | (-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))) |
Compiled 5243 to 1928 computations (63.2% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.1b | (*.f64 (/.f64 y.re y.im) y.re) |
| 3.8b | (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) | |
| ✓ | 4.5b | (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))) |
| 19.3b | (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))) |
15 calls:
| 13.0ms | (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))) | x.re | -inf |
| 12.0ms | (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))) | x.re | 0 |
| 12.0ms | (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))) | x.re | inf |
| 3.0ms | (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))) | y.re | inf |
| 3.0ms | (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))) | y.im | 0 |
| 1× | batch-egg-rewrite |
| 857× | prod-diff_binary64 |
| 174× | expm1-udef_binary64 |
| 174× | log1p-udef_binary64 |
| 129× | fma-neg_binary64 |
| 97× | add-sqr-sqrt_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 20 |
| 1 | 181 | 18 |
| 2 | 2740 | 18 |
| 1× | node limit |
| 1× | egg-herbie |
| 555× | fma-def_binary64 |
| 521× | associate-/r/_binary64 |
| 383× | fma-neg_binary64 |
| 291× | associate-/l/_binary64 |
| 200× | distribute-rgt-neg-in_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 46 | 1032 |
| 1 | 118 | 1032 |
| 2 | 365 | 975 |
| 3 | 1890 | 936 |
| 1× | node limit |
10 alts after pruning (7 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 165 | 1 | 166 |
| Fresh | 1 | 6 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 166 | 10 | 176 |
| Status | Error | Program |
| ✓ | 28.6b | (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))) |
| 33.6b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re))) | |
| 32.1b | (-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im)) | |
| 31.4b | (-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im)) | |
| ✓ | 26.3b | (-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im))) |
| 35.9b | (-.f64 (*.f64 x.im (pow.f64 (/.f64 (sqrt.f64 y.re) (hypot.f64 y.re y.im)) 2)) (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))) | |
| 34.5b | (-.f64 (fma.f64 (/.f64 x.im y.im) (/.f64 y.re y.im) (/.f64 y.re (/.f64 (pow.f64 y.im 3) (*.f64 y.re x.re)))) (/.f64 x.re y.im)) | |
| 34.5b | (-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re)) | |
| 28.4b | (/.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))) (pow.f64 (hypot.f64 y.im y.re) 2)) | |
| ✓ | 16.9b | (-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))) |
Compiled 4408 to 1496 computations (66.1% saved)
Total 4.4b remaining (95.6%)
Threshold costs 0b (0%)
Compiled 6713 to 4074 computations (39.3% saved)
| 2× | binary-search |
2 calls:
| 56.0ms | y.re |
| 2.0ms | y.re |
| Iters | Point | Range | ||||
|---|---|---|---|---|---|---|
-3.9696921097903e-311 | ∈ [ | -2.4589133606071e-308 | , | 5.141751627714131e-306 | ] | |
-7.579958549150986e+153 | ∈ [ | -1.3891652471045586e+155 | , | -4.1192307090218054e+152 | ] | |
Compiled 5 to 4 computations (20% saved)
| 1× | egg-herbie |
| 6× | +-commutative_binary64 |
| 5× | sub-neg_binary64 |
| 4× | *-commutative_binary64 |
| 2× | neg-sub0_binary64 |
| 2× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 29 | 89 |
| 1 | 36 | 89 |
| 2 | 45 | 89 |
| 3 | 49 | 89 |
| 4 | 52 | 89 |
| 5 | 53 | 89 |
| 1× | saturated |
| 1× | fuel |
Compiled 329 to 174 computations (47.1% saved)
Loading profile data...