Time bar (total: 7.5s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 0% | 99.9% | 0.1% | 3 |
| 0% | 99.9% | 0.1% | 4 |
| 0% | 99.9% | 0.1% | 5 |
| 15.6% | 84.3% | 0.1% | 6 |
| 37.5% | 62.4% | 0.1% | 7 |
| 46.8% | 53.1% | 0.1% | 8 |
| 57.8% | 39.8% | 2.4% | 9 |
| 64.6% | 30.4% | 5% | 10 |
| 71.8% | 20.3% | 7.9% | 11 |
| 74.1% | 16.2% | 9.7% | 12 |
| 77.4% | 10.7% | 12% | 13 |
| 78.6% | 8.4% | 13% | 14 |
Compiled 24 to 18 computations (25% saved)
| 2.1s | 8256× | body | 128 | valid |
| 147.0ms | 344× | body | 128 | invalid |
Compiled 71 to 53 computations (25.4% saved)
| 1× | egg-herbie |
| 693× | div-sub_binary64 |
| 599× | times-frac_binary64 |
| 519× | associate-/l*_binary64 |
| 357× | associate-/l/_binary64 |
| 274× | distribute-rgt-in_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 32 |
| 1 | 37 | 29 |
| 2 | 94 | 29 |
| 3 | 345 | 29 |
| 4 | 1207 | 28 |
| 5 | 3468 | 28 |
| 6 | 5020 | 28 |
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 |
| ▶ | 0.4b | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) |
| 16.7b | (*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b))) |
Compiled 127 to 87 computations (31.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.2b | (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) |
| ✓ | 0.2b | (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)) |
| ✓ | 0.3b | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) |
| ✓ | 0.3b | (/.f64 (PI.f64) a) |
4 calls:
| 33.0ms | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) |
| 30.0ms | (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)) |
| 15.0ms | (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) |
| 4.0ms | (/.f64 (PI.f64) a) |
| 2× | batch-egg-rewrite |
| 795× | prod-diff_binary64 |
| 164× | add-sqr-sqrt_binary64 |
| 154× | log1p-expm1-u_binary64 |
| 154× | expm1-log1p-u_binary64 |
| 152× | add-cbrt-cube_binary64 |
4 calls:
| 142.0ms | (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) |
| 142.0ms | (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)) |
| 142.0ms | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) |
| 142.0ms | (/.f64 (PI.f64) a) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 65 |
| 1 | 321 | 65 |
| 2 | 4508 | 65 |
| 3 | 6084 | 65 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 634× | cancel-sign-sub-inv_binary64 |
| 564× | fma-neg_binary64 |
| 305× | associate-/l/_binary64 |
| 277× | associate-/r/_binary64 |
| 224× | neg-mul-1_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 60 | 1248 |
| 1 | 179 | 1212 |
| 2 | 524 | 1146 |
| 3 | 1998 | 1128 |
| 4 | 4718 | 1128 |
| 5 | 5009 | 1128 |
11 alts after pruning (11 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 157 | 10 | 167 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 158 | 11 | 169 |
| Status | Error | Program |
| 15.6b | (*.f64 (/.f64 1/2 (+.f64 b a)) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)) 3))) | |
| 28.9b | (*.f64 1/2 (/.f64 (PI.f64) (*.f64 (pow.f64 a 2) b))) | |
| 0.8b | (*.f64 (/.f64 1/2 (+.f64 b a)) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) 2) (*.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) (/.f64 1 (-.f64 b a))))) | |
| 0.8b | (/.f64 (/.f64 (*.f64 1/2 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 a b)) 2)) (cbrt.f64 (+.f64 a b))) | |
| 0.4b | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (-.f64 (/.f64 (PI.f64) a) (/.f64 (PI.f64) b)) (-.f64 b a))) | |
| ▶ | 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))) |
| 0.9b | (/.f64 1/2 (/.f64 (+.f64 a b) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))) | |
| 0.9b | (/.f64 1/2 (*.f64 (+.f64 a b) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))) | |
| 0.9b | (pow.f64 (cbrt.f64 (*.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))) 3) | |
| 34.9b | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (PI.f64) (sqrt.f64 a)))) (-.f64 b a))) | |
| 16.7b | (*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b))) |
Compiled 4192 to 2034 computations (51.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.2b | (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) | |
| ✓ | 0.2b | (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) |
| ✓ | 0.2b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))) |
| 0.3b | (/.f64 (PI.f64) a) |
2 calls:
| 62.0ms | (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) |
| 34.0ms | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))) |
| 2× | batch-egg-rewrite |
| 309× | log1p-udef_binary64 |
| 171× | add-sqr-sqrt_binary64 |
| 161× | log1p-expm1-u_binary64 |
| 161× | expm1-log1p-u_binary64 |
| 159× | add-cbrt-cube_binary64 |
2 calls:
| 138.0ms | (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) |
| 138.0ms | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 47 |
| 1 | 330 | 47 |
| 2 | 4958 | 47 |
| 3 | 5409 | 47 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 634× | cancel-sign-sub-inv_binary64 |
| 564× | fma-neg_binary64 |
| 299× | associate-/l/_binary64 |
| 275× | associate-/r/_binary64 |
| 225× | neg-mul-1_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 55 | 996 |
| 1 | 171 | 960 |
| 2 | 514 | 894 |
| 3 | 1983 | 876 |
| 4 | 4684 | 876 |
| 5 | 4974 | 876 |
11 alts after pruning (11 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 158 | 3 | 161 |
| Fresh | 2 | 8 | 10 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 161 | 11 | 172 |
| Status | Error | Program |
| 0.8b | (*.f64 (/.f64 1/2 (+.f64 b a)) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) 2) (*.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) (/.f64 1 (-.f64 b a))))) | |
| 0.8b | (/.f64 (/.f64 (*.f64 1/2 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 a b)) 2)) (cbrt.f64 (+.f64 a b))) | |
| 28.7b | (*.f64 (/.f64 1/2 (sqrt.f64 (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))) (/.f64 (/.f64 1 (+.f64 a b)) (sqrt.f64 (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))))) | |
| 0.9b | (/.f64 1/2 (/.f64 (+.f64 a b) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))) | |
| 0.9b | (/.f64 1/2 (*.f64 (+.f64 a b) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))) | |
| 28.9b | (*.f64 1/2 (/.f64 (PI.f64) (*.f64 (pow.f64 a 2) b))) | |
| 0.9b | (pow.f64 (cbrt.f64 (*.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))) 3) | |
| 34.9b | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (PI.f64) (sqrt.f64 a)))) (-.f64 b a))) | |
| 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (-.f64 (/.f64 (PI.f64) a) (/.f64 (PI.f64) b)))) | |
| ▶ | 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64))) |
| 16.7b | (*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b))) |
Compiled 4355 to 2150 computations (50.6% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (/.f64 1/2 (+.f64 a b)) |
| ✓ | 0.2b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64))) |
| ✓ | 0.5b | (/.f64 (*.f64 a b) (PI.f64)) |
3 calls:
| 31.0ms | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64))) |
| 30.0ms | (/.f64 (*.f64 a b) (PI.f64)) |
| 19.0ms | (/.f64 1/2 (+.f64 a b)) |
| 2× | batch-egg-rewrite |
| 637× | prod-diff_binary64 |
| 216× | log1p-udef_binary64 |
| 120× | add-sqr-sqrt_binary64 |
| 117× | egg-rr |
| 114× | log1p-expm1-u_binary64 |
3 calls:
| 99.0ms | (/.f64 1/2 (+.f64 a b)) |
| 99.0ms | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64))) |
| 99.0ms | (/.f64 (*.f64 a b) (PI.f64)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 32 |
| 1 | 233 | 32 |
| 2 | 3512 | 32 |
| 3 | 5126 | 32 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 338× | times-frac_binary64 |
| 331× | distribute-rgt-neg-in_binary64 |
| 327× | distribute-lft-neg-in_binary64 |
| 321× | distribute-neg-frac_binary64 |
| 286× | fma-def_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 87 | 1368 |
| 1 | 270 | 1296 |
| 2 | 853 | 1194 |
| 3 | 3388 | 1194 |
| 4 | 4909 | 1194 |
| 5 | 5077 | 1194 |
10 alts after pruning (10 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 142 | 6 | 148 |
| Fresh | 6 | 4 | 10 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 149 | 10 | 159 |
| Status | Error | Program |
| ▶ | 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))) |
| 34.9b | (*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (PI.f64) (sqrt.f64 a)))) (-.f64 b a))) | |
| 0.3b | (*.f64 (PI.f64) (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 a b))) | |
| 0.8b | (/.f64 (/.f64 (*.f64 1/2 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 a b)) 2)) (cbrt.f64 (+.f64 a b))) | |
| 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 a (/.f64 1 (/.f64 (PI.f64) b)))) | |
| 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a (PI.f64)) b)) | |
| 0.3b | (*.f64 (/.f64 -1/2 (+.f64 a b)) (/.f64 1 (/.f64 (neg.f64 (*.f64 a b)) (PI.f64)))) | |
| 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (-.f64 (/.f64 (PI.f64) a) (/.f64 (PI.f64) b)))) | |
| 0.9b | (*.f64 1/2 (/.f64 1 (*.f64 (/.f64 (*.f64 a b) (PI.f64)) (+.f64 a b)))) | |
| 16.7b | (*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b))) |
Compiled 2959 to 1448 computations (51.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.0b | (/.f64 1/2 (+.f64 a b)) | |
| ✓ | 0.2b | (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))) |
| ✓ | 0.2b | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))) |
| ✓ | 0.2b | (/.f64 b (PI.f64)) |
3 calls:
| 30.0ms | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))) |
| 29.0ms | (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))) |
| 12.0ms | (/.f64 b (PI.f64)) |
| 2× | batch-egg-rewrite |
| 549× | prod-diff_binary64 |
| 228× | log1p-udef_binary64 |
| 128× | add-sqr-sqrt_binary64 |
| 126× | egg-rr |
| 121× | log1p-expm1-u_binary64 |
3 calls:
| 115.0ms | (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))) |
| 115.0ms | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))) |
| 115.0ms | (/.f64 b (PI.f64)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 30 |
| 1 | 258 | 30 |
| 2 | 3687 | 30 |
| 3 | 5100 | 30 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 972× | fma-neg_binary64 |
| 695× | cancel-sign-sub-inv_binary64 |
| 321× | associate-/l/_binary64 |
| 189× | distribute-neg-frac_binary64 |
| 174× | times-frac_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 60 | 996 |
| 1 | 176 | 960 |
| 2 | 522 | 894 |
| 3 | 2029 | 876 |
| 4 | 4535 | 876 |
| 5 | 5031 | 876 |
9 alts after pruning (8 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 179 | 3 | 182 |
| Fresh | 4 | 5 | 9 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 183 | 9 | 192 |
| Status | Error | Program |
| 0.4b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 b (*.f64 (PI.f64) (/.f64 1 a)))) | |
| 0.3b | (*.f64 (PI.f64) (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 a b))) | |
| 5.6b | (*.f64 (/.f64 1/2 (/.f64 b (PI.f64))) (/.f64 (/.f64 1 (+.f64 b a)) a)) | |
| 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a (PI.f64)) b)) | |
| 0.3b | (*.f64 (/.f64 -1/2 (+.f64 a b)) (/.f64 1 (/.f64 (neg.f64 (*.f64 a b)) (PI.f64)))) | |
| ✓ | 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))) |
| 0.3b | (/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 a (/.f64 (PI.f64) b))) | |
| 0.9b | (*.f64 1/2 (/.f64 1 (*.f64 (/.f64 (*.f64 a b) (PI.f64)) (+.f64 a b)))) | |
| 16.7b | (*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b))) |
Compiled 3339 to 1713 computations (48.7% saved)
Total 0.3b remaining (92.9%)
Threshold costs 0.3b (92.9%)
Compiled 12634 to 8781 computations (30.5% saved)
| 1× | egg-herbie |
| 1× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 17 |
| 1 | 11 | 17 |
| 2 | 11 | 17 |
Compiled 164 to 118 computations (28% saved)
Loading profile data...