Time bar (total: 4.1s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 1.5% | 98.5% | 0 |
| 0% | 1.5% | 98.5% | 1 |
| 0% | 1.5% | 98.5% | 2 |
| 0.8% | 0.8% | 98.5% | 3 |
| 0.8% | 0.8% | 98.5% | 4 |
| 1.2% | 0.4% | 98.5% | 5 |
| 1.2% | 0.4% | 98.5% | 6 |
| 1.4% | 0.2% | 98.5% | 7 |
| 1.4% | 0.2% | 98.5% | 8 |
| 1.4% | 0.1% | 98.5% | 9 |
| 1.4% | 0.1% | 98.5% | 10 |
| 1.5% | 0% | 98.5% | 11 |
| 1.5% | 0% | 98.5% | 12 |
| 1.5% | 0% | 98.5% | 13 |
| 1.5% | 0% | 98.5% | 14 |
Compiled 27 to 21 computations (22.2% saved)
| 1.5s | 8256× | body | 128 | valid |
Compiled 66 to 52 computations (21.2% saved)
| 1× | egg-herbie |
| 175× | fma-neg_binary32 |
| 152× | fma-def_binary32 |
| 46× | cancel-sign-sub-inv_binary32 |
| 46× | sub-neg_binary32 |
| 30× | distribute-rgt-in_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 14 |
| 1 | 24 | 11 |
| 2 | 41 | 11 |
| 3 | 70 | 11 |
| 4 | 97 | 11 |
| 5 | 127 | 11 |
| 6 | 167 | 11 |
| 7 | 241 | 11 |
| 8 | 359 | 11 |
| 9 | 435 | 11 |
| 10 | 511 | 11 |
| 11 | 603 | 11 |
| 12 | 741 | 11 |
| 13 | 853 | 11 |
| 14 | 866 | 11 |
| 1× | saturated |
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 |
| 11.8b | (*.f32 s (log.f32 (/.f32 1 (-.f32 1 (*.f32 4 u))))) | |
| ▶ | 0.2b | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
Compiled 61 to 49 computations (19.7% saved)
Found 2 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (log1p.f32 (*.f32 u -4)) |
| ✓ | 0.2b | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
2 calls:
| 230.0ms | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
| 2.0ms | (log1p.f32 (*.f32 u -4)) |
| 1× | batch-egg-rewrite |
| 591× | expm1-log1p-u_binary32 |
| 590× | log1p-expm1-u_binary32 |
| 334× | log-prod_binary32 |
| 143× | prod-diff_binary32 |
| 125× | expm1-udef_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 17 |
| 1 | 162 | 15 |
| 2 | 1949 | 15 |
| 1× | node limit |
2 calls:
| 33.0ms | (log1p.f32 (*.f32 u -4)) |
| 33.0ms | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
| 1× | egg-herbie |
| 836× | fma-neg_binary32 |
| 526× | fma-def_binary32 |
| 364× | sub-neg_binary32 |
| 212× | associate-+l+_binary32 |
| 186× | unsub-neg_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 106 | 726 |
| 1 | 336 | 675 |
| 2 | 1065 | 632 |
| 3 | 3590 | 624 |
| 1× | node limit |
9 alts after pruning (8 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 84 | 7 | 91 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 84 | 9 | 93 |
| Status | Error | Program |
| 11.8b | (*.f32 s (log.f32 (/.f32 1 (-.f32 1 (*.f32 4 u))))) | |
| 2.6b | (+.f32 (*.f32 8 (*.f32 s (pow.f32 u 2))) (+.f32 (*.f32 64/3 (*.f32 s (pow.f32 u 3))) (+.f32 (*.f32 64 (*.f32 s (pow.f32 u 4))) (*.f32 4 (*.f32 s u))))) | |
| 3.3b | (fma.f32 4 (*.f32 s u) (*.f32 s (*.f32 (*.f32 u u) (+.f32 8 (*.f32 u 64/3))))) | |
| ▶ | 0.7b | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| 0.7b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) | |
| 12.0b | (*.f32 (-.f32 (log.f32 (-.f32 1 (*.f32 (*.f32 u u) 16))) (log.f32 (-.f32 1 (*.f32 u -4)))) (neg.f32 s)) | |
| 11.8b | (*.f32 (-.f32 (log1p.f32 (pow.f32 (*.f32 u -4) 3)) (log.f32 (+.f32 1 (-.f32 (*.f32 (*.f32 u u) 16) (*.f32 u -4))))) (neg.f32 s)) | |
| ✓ | 0.2b | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
| 3.3b | (*.f32 (fma.f32 u (-.f32 -4 (*.f32 u 8)) (*.f32 (pow.f32 u 3) -64/3)) (neg.f32 s)) |
Compiled 1629 to 1173 computations (28% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.0b | (log1p.f32 (*.f32 u -4)) | |
| ✓ | 0.1b | (cbrt.f32 (log1p.f32 (*.f32 u -4))) |
| ✓ | 0.2b | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| ✓ | 0.7b | (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) |
3 calls:
| 228.0ms | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| 19.0ms | (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) |
| 13.0ms | (cbrt.f32 (log1p.f32 (*.f32 u -4))) |
| 1× | batch-egg-rewrite |
| 760× | expm1-log1p-u_binary32 |
| 759× | log1p-expm1-u_binary32 |
| 143× | prod-diff_binary32 |
| 99× | add-sqr-sqrt_binary32 |
| 93× | add-cbrt-cube_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 25 |
| 1 | 224 | 23 |
| 2 | 2461 | 23 |
| 1× | node limit |
3 calls:
| 37.0ms | (cbrt.f32 (log1p.f32 (*.f32 u -4))) |
| 37.0ms | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| 37.0ms | (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) |
| 1× | egg-herbie |
| 310× | times-frac_binary32 |
| 242× | cancel-sign-sub-inv_binary32 |
| 217× | associate-*l/_binary32 |
| 198× | fma-def_binary32 |
| 194× | associate-*r/_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 184 | 1869 |
| 1 | 601 | 1682 |
| 2 | 2015 | 1645 |
| 1× | node limit |
11 alts after pruning (9 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 158 | 2 | 160 |
| Fresh | 0 | 7 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 158 | 11 | 169 |
| Status | Error | Program |
| 11.8b | (*.f32 s (log.f32 (/.f32 1 (-.f32 1 (*.f32 4 u))))) | |
| 2.6b | (+.f32 (*.f32 8 (*.f32 s (pow.f32 u 2))) (+.f32 (*.f32 64/3 (*.f32 s (pow.f32 u 3))) (+.f32 (*.f32 64 (*.f32 s (pow.f32 u 4))) (*.f32 4 (*.f32 s u))))) | |
| 3.6b | (*.f32 (pow.f32 (log.f32 (exp.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))))) 3) (neg.f32 s)) | |
| 3.3b | (*.f32 (fma.f32 u (-.f32 -4 (*.f32 u 8)) (*.f32 (pow.f32 u 3) -64/3)) (neg.f32 s)) | |
| 3.3b | (fma.f32 4 (*.f32 s u) (*.f32 s (*.f32 (*.f32 u u) (+.f32 8 (*.f32 u 64/3))))) | |
| 3.2b | (fma.f32 8 (*.f32 u (*.f32 u s)) (*.f32 s (+.f32 (*.f32 u 4) (*.f32 64/3 (pow.f32 u 3))))) | |
| ✓ | 0.7b | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| ▶ | 0.7b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) |
| 12.0b | (*.f32 (-.f32 (log.f32 (-.f32 1 (*.f32 (*.f32 u u) 16))) (log.f32 (-.f32 1 (*.f32 u -4)))) (neg.f32 s)) | |
| 11.8b | (*.f32 (-.f32 (log1p.f32 (pow.f32 (*.f32 u -4) 3)) (log.f32 (+.f32 1 (-.f32 (*.f32 (*.f32 u u) 16) (*.f32 u -4))))) (neg.f32 s)) | |
| ✓ | 0.2b | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
Compiled 3995 to 3111 computations (22.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.1b | (cbrt.f32 (log1p.f32 (*.f32 u -4))) | |
| ✓ | 0.2b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) |
| ✓ | 0.4b | (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) |
| ✓ | 0.5b | (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2) |
3 calls:
| 227.0ms | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) |
| 18.0ms | (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2) |
| 3.0ms | (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) |
| 1× | batch-egg-rewrite |
| 800× | expm1-log1p-u_binary32 |
| 799× | log1p-expm1-u_binary32 |
| 143× | prod-diff_binary32 |
| 107× | add-sqr-sqrt_binary32 |
| 100× | add-cbrt-cube_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 28 |
| 1 | 248 | 26 |
| 2 | 2643 | 26 |
| 1× | node limit |
3 calls:
| 38.0ms | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) |
| 38.0ms | (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) |
| 38.0ms | (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2) |
| 1× | egg-herbie |
| 234× | times-frac_binary32 |
| 229× | cancel-sign-sub-inv_binary32 |
| 206× | associate-/r*_binary32 |
| 197× | fma-def_binary32 |
| 173× | distribute-rgt-in_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 182 | 1616 |
| 1 | 589 | 1468 |
| 2 | 2065 | 1416 |
| 1× | node limit |
10 alts after pruning (8 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 183 | 4 | 187 |
| Fresh | 4 | 4 | 8 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 2 | 2 |
| Total | 188 | 10 | 198 |
| Status | Error | Program |
| ▶ | 0.4b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) (neg.f32 s)) |
| 2.6b | (+.f32 (*.f32 8 (*.f32 s (pow.f32 u 2))) (+.f32 (*.f32 64/3 (*.f32 s (pow.f32 u 3))) (+.f32 (*.f32 64 (*.f32 s (pow.f32 u 4))) (*.f32 4 (*.f32 s u))))) | |
| 2.5b | (+.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (*.f32 (pow.f32 u 3) 64/3))) (*.f32 s (*.f32 u (+.f32 (*.f32 8 u) 4)))) | |
| 3.2b | (fma.f32 8 (*.f32 u (*.f32 u s)) (*.f32 s (+.f32 (*.f32 u 4) (*.f32 64/3 (pow.f32 u 3))))) | |
| ✓ | 0.2b | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
| 0.9b | (*.f32 (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 3) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) | |
| 3.2b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (log.f32 (exp.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))))) 2)) (neg.f32 s)) | |
| ✓ | 0.7b | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| 12.0b | (*.f32 (-.f32 (log.f32 (-.f32 1 (*.f32 (*.f32 u u) 16))) (log.f32 (-.f32 1 (*.f32 u -4)))) (neg.f32 s)) | |
| 3.6b | (*.f32 (pow.f32 (log.f32 (exp.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))))) 3) (neg.f32 s)) |
Compiled 6297 to 5066 computations (19.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.1b | (cbrt.f32 (log1p.f32 (*.f32 u -4))) | |
| ✓ | 0.2b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) (neg.f32 s)) |
| ✓ | 0.4b | (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) |
| ✓ | 0.5b | (pow.f32 (log1p.f32 (*.f32 u -4)) 2) |
3 calls:
| 232.0ms | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) (neg.f32 s)) |
| 5.0ms | (pow.f32 (log1p.f32 (*.f32 u -4)) 2) |
| 3.0ms | (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) |
| 1× | batch-egg-rewrite |
| 863× | expm1-log1p-u_binary32 |
| 862× | log1p-expm1-u_binary32 |
| 143× | prod-diff_binary32 |
| 116× | add-sqr-sqrt_binary32 |
| 112× | add-cbrt-cube_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 52 |
| 1 | 264 | 24 |
| 2 | 2955 | 24 |
| 1× | node limit |
3 calls:
| 44.0ms | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) (neg.f32 s)) |
| 44.0ms | (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) |
| 44.0ms | (pow.f32 (log1p.f32 (*.f32 u -4)) 2) |
| 1× | egg-herbie |
| 286× | cancel-sign-sub-inv_binary32 |
| 282× | fma-def_binary32 |
| 243× | sub-neg_binary32 |
| 196× | associate-*l*_binary32 |
| 173× | associate-/r*_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 205 | 1385 |
| 1 | 671 | 1304 |
| 2 | 2372 | 1214 |
| 1× | node limit |
10 alts after pruning (7 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 162 | 0 | 162 |
| Fresh | 0 | 7 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 162 | 10 | 172 |
| Status | Error | Program |
| ✓ | 0.4b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (cbrt.f32 (pow.f32 (log1p.f32 (*.f32 u -4)) 2))) (neg.f32 s)) |
| 2.6b | (+.f32 (*.f32 8 (*.f32 s (pow.f32 u 2))) (+.f32 (*.f32 64/3 (*.f32 s (pow.f32 u 3))) (+.f32 (*.f32 64 (*.f32 s (pow.f32 u 4))) (*.f32 4 (*.f32 s u))))) | |
| 2.5b | (+.f32 (*.f32 s (fma.f32 64 (pow.f32 u 4) (*.f32 (pow.f32 u 3) 64/3))) (*.f32 s (*.f32 u (+.f32 (*.f32 8 u) 4)))) | |
| 3.2b | (fma.f32 8 (*.f32 u (*.f32 u s)) (*.f32 s (+.f32 (*.f32 u 4) (*.f32 64/3 (pow.f32 u 3))))) | |
| ✓ | 0.2b | (*.f32 (log1p.f32 (*.f32 u -4)) (neg.f32 s)) |
| 0.9b | (*.f32 (*.f32 (pow.f32 (cbrt.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4)))) 3) (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 2)) (neg.f32 s)) | |
| 3.2b | (*.f32 (*.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) (pow.f32 (log.f32 (exp.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))))) 2)) (neg.f32 s)) | |
| ✓ | 0.7b | (*.f32 (pow.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))) 3) (neg.f32 s)) |
| 12.0b | (*.f32 (-.f32 (log.f32 (-.f32 1 (*.f32 (*.f32 u u) 16))) (log.f32 (-.f32 1 (*.f32 u -4)))) (neg.f32 s)) | |
| 3.6b | (*.f32 (pow.f32 (log.f32 (exp.f32 (cbrt.f32 (log1p.f32 (*.f32 u -4))))) 3) (neg.f32 s)) |
Compiled 4549 to 3546 computations (22% saved)
Total 0.2b remaining (72.6%)
Threshold costs 0.2b (72.6%)
Compiled 6351 to 5070 computations (20.2% saved)
| 1× | egg-herbie |
| 6× | *-commutative_binary32 |
| 3× | +-commutative_binary32 |
| 3× | sub-neg_binary32 |
| 3× | neg-sub0_binary32 |
| 3× | neg-mul-1_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 11 |
| 1 | 16 | 11 |
| 2 | 24 | 11 |
| 3 | 30 | 11 |
| 4 | 33 | 11 |
| 5 | 34 | 11 |
| 1× | saturated |
Compiled 207 to 164 computations (20.8% saved)
Loading profile data...