Time bar (total: 3.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 |
| 25% | 74.9% | 0.1% | 3 |
| 62.4% | 37.5% | 0.1% | 4 |
| 68.7% | 31.2% | 0.1% | 5 |
| 68.7% | 18.7% | 12.6% | 6 |
| 68.7% | 17.2% | 14.1% | 7 |
| 68.7% | 10.1% | 21.2% | 8 |
| 68.7% | 9% | 22.3% | 9 |
| 68.7% | 5.3% | 26% | 10 |
| 68.7% | 4.6% | 26.7% | 11 |
| 68.7% | 2.7% | 28.6% | 12 |
| 68.7% | 2.3% | 29% | 13 |
| 68.7% | 1.4% | 30% | 14 |
Compiled 11 to 7 computations (36.4% saved)
| 778.0ms | 8256× | body | 128 | valid |
| 2.0ms | 25× | body | 128 | invalid |
Compiled 32 to 20 computations (37.5% saved)
| 1× | egg-herbie |
| 1× | +-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 8 | 13 |
| 2 | 8 | 13 |
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 1 | 1 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Error | Program |
| ▶ | 0.8b | (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) |
Compiled 30 to 18 computations (40% saved)
Found 2 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (+.f64 (exp.f64 a) (exp.f64 b)) |
| ✓ | 0.8b | (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) |
2 calls:
| 30.0ms | (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) |
| 5.0ms | (+.f64 (exp.f64 a) (exp.f64 b)) |
| 2× | batch-egg-rewrite |
| 70× | egg-rr |
2 calls:
| 47.0ms | ((/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (+.f64 (exp.f64 a) (exp.f64 b))) |
| 0.0ms | () |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 21 |
| 1 | 147 | 21 |
| 2 | 1998 | 21 |
| 3 | 5794 | 21 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 475× | times-frac_binary64 |
| 464× | associate-+l+_binary64 |
| 426× | fma-def_binary64 |
| 303× | associate-/l*_binary64 |
| 240× | associate--l+_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 103 | 1020 |
| 1 | 302 | 981 |
| 2 | 1070 | 965 |
| 3 | 5042 | 965 |
4 alts after pruning (4 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 94 | 4 | 98 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 95 | 4 | 99 |
| Status | Error | Program |
| ▶ | 0.8b | (/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) |
| 24.9b | (+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 (*.f64 b b) (pow.f64 (+.f64 1 (exp.f64 a)) 3)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (/.f64 (*.f64 (exp.f64 a) (pow.f64 b 3)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 b (exp.f64 a)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) b) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4)))))))) | |
| 12.4b | (/.f64 1 (+.f64 1 (exp.f64 b))) | |
| 0.8b | (expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
Compiled 2184 to 1029 computations (52.9% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (sqrt.f64 (exp.f64 b)) |
| ✓ | 0.0b | (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a)) |
| ✓ | 0.8b | (/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) |
3 calls:
| 34.0ms | (/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) |
| 11.0ms | (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a)) |
| 2.0ms | (sqrt.f64 (exp.f64 b)) |
| 2× | batch-egg-rewrite |
| 78× | egg-rr |
2 calls:
| 46.0ms | ((/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a)) (sqrt.f64 (exp.f64 b))) |
| 0.0ms | () |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 26 |
| 1 | 155 | 26 |
| 2 | 1868 | 26 |
| 3 | 5057 | 26 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 498× | fma-def_binary64 |
| 490× | associate-+l+_binary64 |
| 475× | times-frac_binary64 |
| 303× | associate-/l*_binary64 |
| 240× | associate--l+_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 114 | 1063 |
| 1 | 328 | 1022 |
| 2 | 1142 | 1003 |
| 3 | 5252 | 1003 |
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 142 | 0 | 142 |
| Fresh | 0 | 3 | 3 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 142 | 4 | 146 |
| Status | Error | Program |
| ✓ | 0.8b | (/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) |
| 24.9b | (+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 (*.f64 b b) (pow.f64 (+.f64 1 (exp.f64 a)) 3)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (/.f64 (*.f64 (exp.f64 a) (pow.f64 b 3)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 b (exp.f64 a)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) b) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4)))))))) | |
| 12.4b | (/.f64 1 (+.f64 1 (exp.f64 b))) | |
| ▶ | 0.8b | (expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
Compiled 2805 to 1232 computations (56.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))) |
| 0.0b | (+.f64 (exp.f64 a) (exp.f64 b)) | |
| ✓ | 0.0b | (expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
| 0.8b | (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) |
2 calls:
| 672.0ms | (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))) |
| 29.0ms | (expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
| 2× | batch-egg-rewrite |
| 64× | egg-rr |
2 calls:
| 51.0ms | ((expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
| 0.0ms | () |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 28 |
| 1 | 166 | 28 |
| 2 | 2188 | 28 |
| 3 | 5058 | 28 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 357× | times-frac_binary64 |
| 337× | cancel-sign-sub-inv_binary64 |
| 229× | associate-/r*_binary64 |
| 223× | unswap-sqr_binary64 |
| 211× | associate-/l*_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 229 | 2778 |
| 1 | 754 | 2674 |
| 2 | 3642 | 2499 |
| 3 | 4991 | 2499 |
4 alts after pruning (2 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 193 | 1 | 194 |
| Fresh | 1 | 1 | 2 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 194 | 4 | 198 |
| Status | Error | Program |
| ✓ | 0.8b | (/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) |
| 24.9b | (+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 (*.f64 b b) (pow.f64 (+.f64 1 (exp.f64 a)) 3)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (/.f64 (*.f64 (exp.f64 a) (pow.f64 b 3)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (fma.f64 1/2 (*.f64 (/.f64 (*.f64 b (exp.f64 a)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) b) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4)))))))) | |
| ▶ | 12.4b | (expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b))))) |
| ✓ | 0.8b | (expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
Compiled 6284 to 3403 computations (45.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b)))) |
| ✓ | 0.0b | (expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b))))) |
| ✓ | 0.0b | (+.f64 1 (exp.f64 b)) |
| ✓ | 0.0b | (/.f64 1 (+.f64 1 (exp.f64 b))) |
4 calls:
| 240.0ms | (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b)))) |
| 8.0ms | (expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b))))) |
| 7.0ms | (/.f64 1 (+.f64 1 (exp.f64 b))) |
| 2.0ms | (+.f64 1 (exp.f64 b)) |
| 2× | batch-egg-rewrite |
| 120× | egg-rr |
2 calls:
| 84.0ms | ((/.f64 1 (+.f64 1 (exp.f64 b))) (+.f64 1 (exp.f64 b)) (expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b))))) (log1p.f64 (/.f64 1 (+.f64 1 (exp.f64 b))))) |
| 0.0ms | () |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 35 |
| 1 | 143 | 35 |
| 2 | 1627 | 35 |
| 3 | 4878 | 35 |
| 4 | 5024 | 35 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 700× | cancel-sign-sub-inv_binary64 |
| 532× | fma-def_binary64 |
| 479× | unsub-neg_binary64 |
| 448× | unswap-sqr_binary64 |
| 374× | *-commutative_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 47 | 345 |
| 1 | 119 | 333 |
| 2 | 300 | 319 |
| 3 | 786 | 304 |
| 4 | 2102 | 304 |
| 5 | 3142 | 304 |
| 6 | 4385 | 304 |
| 7 | 5179 | 304 |
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 113 | 1 | 114 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 2 | 2 |
| Total | 115 | 3 | 118 |
| Status | Error | Program |
| ✓ | 0.8b | (/.f64 (exp.f64 a) (fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))) |
| 12.7b | (/.f64 (fma.f64 (+.f64 1 (/.f64 1 (+.f64 1 (exp.f64 b)))) (+.f64 1 (/.f64 1 (+.f64 1 (exp.f64 b)))) -1) (+.f64 (+.f64 1 (/.f64 1 (+.f64 1 (exp.f64 b)))) 1)) | |
| ✓ | 0.8b | (expm1.f64 (log1p.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))))) |
Compiled 1543 to 1197 computations (22.4% saved)
Total 0.3b remaining (51.7%)
Threshold costs 0.3b (51.7%)
Compiled 11529 to 8033 computations (30.3% saved)
| 1× | egg-herbie |
| 3× | +-commutative_binary64 |
| 2× | *-commutative_binary64 |
| 2× | sub-neg_binary64 |
| 1× | *-rgt-identity_binary64 |
| 1× | neg-sub0_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 15 |
| 1 | 17 | 15 |
| 2 | 21 | 15 |
| 3 | 23 | 15 |
| 4 | 24 | 15 |
| 5 | 23 | 15 |
Compiled 79 to 57 computations (27.8% saved)
Loading profile data...