Time bar (total: 5.8s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 0% | 100% | 0 |
| 0% | 0% | 100% | 1 |
Compiled 17 to 11 computations (35.3% saved)
| 818.0ms | 8256× | body | 128 | valid |
Compiled 44 to 28 computations (36.4% saved)
| 1× | egg-herbie |
| 649× | fma-neg_binary64 |
| 504× | div-sub_binary64 |
| 481× | fma-def_binary64 |
| 326× | times-frac_binary64 |
| 174× | associate-/l/_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 10 |
| 1 | 13 | 10 |
| 2 | 21 | 10 |
| 3 | 37 | 10 |
| 4 | 64 | 10 |
| 5 | 113 | 10 |
| 6 | 216 | 10 |
| 7 | 415 | 10 |
| 8 | 754 | 10 |
| 9 | 1183 | 10 |
| 10 | 1537 | 10 |
| 11 | 1612 | 10 |
| 12 | 1657 | 10 |
| 13 | 1684 | 10 |
| 14 | 1694 | 10 |
| 15 | 1702 | 10 |
| 16 | 1702 | 10 |
| 17 | 1600 | 10 |
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 |
| ▶ | 62.0b | (/.f64 (-.f64 x lo) (-.f64 hi lo)) |
Compiled 30 to 18 computations (40% saved)
Found 1 expressions with local error:
| New | Error | Program |
| ✓ | 62.0b | (/.f64 (-.f64 x lo) (-.f64 hi lo)) |
1 calls:
| 17.0ms | (/.f64 (-.f64 x lo) (-.f64 hi lo)) |
| 1× | batch-egg-rewrite |
| 952× | prod-diff_binary64 |
| 728× | fma-udef_binary64 |
| 226× | fma-neg_binary64 |
| 166× | expm1-udef_binary64 |
| 166× | log1p-udef_binary64 |
1 calls:
| 111.0ms | (/.f64 (-.f64 x lo) (-.f64 hi lo)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 10 |
| 1 | 167 | 10 |
| 2 | 2530 | 10 |
| 3 | 4730 | 10 |
| 4 | 4517 | 10 |
| 5 | 5108 | 10 |
| 1× | egg-herbie |
| 721× | sub-neg_binary64 |
| 402× | associate--l+_binary64 |
| 332× | associate--r+_binary64 |
| 330× | fma-def_binary64 |
| 301× | associate-+l+_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 78 | 1093 |
| 1 | 234 | 1075 |
| 2 | 842 | 919 |
| 3 | 4059 | 913 |
| 4 | 4904 | 898 |
| 5 | 5053 | 898 |
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 94 | 6 | 100 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 95 | 6 | 101 |
| Status | Error | Program |
| 52.0b | (-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))) | |
| ▶ | 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) |
| 57.2b | (-.f64 (*.f64 (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 lo x) hi)) | |
| 51.9b | (/.f64 (-.f64 x lo) hi) | |
| 52.0b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) | |
| 58.5b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (+.f64 (pow.f64 (/.f64 hi lo) 3) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))) |
Compiled 2519 to 890 computations (64.7% saved)
Found 2 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) |
| ✓ | 0.0b | (/.f64 (-.f64 x lo) hi) |
2 calls:
| 23.0ms | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) |
| 9.0ms | (/.f64 (-.f64 x lo) hi) |
| 1× | batch-egg-rewrite |
| 415× | fma-def_binary64 |
| 233× | egg-rr |
| 210× | fma-neg_binary64 |
| 199× | log-div_binary64 |
| 194× | expm1-udef_binary64 |
2 calls:
| 93.0ms | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) |
| 93.0ms | (/.f64 (-.f64 x lo) hi) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 24 |
| 1 | 204 | 24 |
| 2 | 2994 | 24 |
| 3 | 4982 | 24 |
| 4 | 4992 | 24 |
| 1× | egg-herbie |
| 804× | times-frac_binary64 |
| 595× | distribute-neg-frac_binary64 |
| 395× | div-sub_binary64 |
| 374× | associate-/l*_binary64 |
| 321× | neg-sub0_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 876 |
| 1 | 69 | 795 |
| 2 | 151 | 735 |
| 3 | 341 | 729 |
| 4 | 835 | 729 |
| 5 | 3820 | 729 |
| 6 | 4619 | 729 |
| 7 | 4915 | 729 |
23 alts after pruning (23 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 228 | 18 | 246 |
| Fresh | 0 | 5 | 5 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 229 | 23 | 252 |
| Status | Error | Program |
| 52.0b | (-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (*.f64 (/.f64 (sqrt.f64 (-.f64 x lo)) 1) (/.f64 (sqrt.f64 (-.f64 x lo)) hi))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (cbrt.f64 (/.f64 (-.f64 x lo) hi)) (pow.f64 (cbrt.f64 (/.f64 (-.f64 x lo) hi)) 2) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (sqrt.f64 hi)) (/.f64 (cbrt.f64 (-.f64 x lo)) (sqrt.f64 hi)))) | |
| ▶ | 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2)) (cbrt.f64 (/.f64 lo hi))))) |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (*.f64 (cbrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (/.f64 (+.f64 (pow.f64 (*.f64 (/.f64 x hi) (/.f64 lo hi)) 3) (pow.f64 (/.f64 (-.f64 x lo) hi) 3)) (fma.f64 (*.f64 (/.f64 x hi) (/.f64 lo hi)) (*.f64 (/.f64 x hi) (/.f64 lo hi)) (-.f64 (pow.f64 (/.f64 (-.f64 x lo) hi) 2) (*.f64 (*.f64 (/.f64 x hi) (/.f64 lo hi)) (/.f64 (-.f64 x lo) hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (*.f64 (cbrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (*.f64 (/.f64 1 (sqrt.f64 hi)) (/.f64 (-.f64 x lo) (sqrt.f64 hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (sqrt.f64 (-.f64 x lo)) (*.f64 (sqrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (log.f64 (/.f64 (exp.f64 (/.f64 x hi)) (+.f64 1 (expm1.f64 (/.f64 lo hi)))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (sqrt.f64 (-.f64 x lo)) (*.f64 (sqrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 x lo) hi))))) | |
| 57.2b | (-.f64 (*.f64 (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 lo x) hi)) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (sqrt.f64 hi)) (/.f64 (cbrt.f64 (-.f64 x lo)) (sqrt.f64 hi)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (/.f64 (-.f64 x lo) hi) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (sqrt.f64 hi)) (/.f64 (cbrt.f64 (-.f64 x lo)) (sqrt.f64 hi)) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 52.0b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) 1) (/.f64 (cbrt.f64 (-.f64 x lo)) hi) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (pow.f64 (sqrt.f64 (/.f64 (-.f64 x lo) hi)) 2)) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (-.f64 x lo) (/.f64 1 hi) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (-.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 x lo) hi))) 1)) | |
| 58.5b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (+.f64 (pow.f64 (/.f64 hi lo) 3) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))) |
Compiled 7176 to 1963 computations (72.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.4b | (cbrt.f64 hi) |
| ✓ | 0.4b | (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) |
| ✓ | 0.5b | (cbrt.f64 (/.f64 lo hi)) |
| ✓ | 60.4b | (cbrt.f64 (*.f64 hi hi)) |
4 calls:
| 347.0ms | (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) |
| 330.0ms | (cbrt.f64 (/.f64 lo hi)) |
| 29.0ms | (cbrt.f64 hi) |
| 29.0ms | (cbrt.f64 (*.f64 hi hi)) |
| 1× | batch-egg-rewrite |
| 774× | log1p-expm1-u_binary64 |
| 774× | expm1-log1p-u_binary64 |
| 151× | log1p-udef_binary64 |
| 108× | egg-rr |
| 90× | add-sqr-sqrt_binary64 |
4 calls:
| 51.0ms | (cbrt.f64 hi) |
| 51.0ms | (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) |
| 51.0ms | (cbrt.f64 (/.f64 lo hi)) |
| 51.0ms | (cbrt.f64 (*.f64 hi hi)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 24 |
| 1 | 196 | 24 |
| 2 | 2048 | 24 |
| 3 | 5009 | 24 |
| 1× | egg-herbie |
| 750× | fma-def_binary64 |
| 562× | associate-*l*_binary64 |
| 506× | associate-*r*_binary64 |
| 488× | div-sub_binary64 |
| 378× | fma-neg_binary64 |
Useful iterations: 6 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 1016 |
| 1 | 120 | 1016 |
| 2 | 226 | 920 |
| 3 | 787 | 696 |
| 4 | 3148 | 632 |
| 5 | 4066 | 632 |
| 6 | 4426 | 616 |
| 7 | 4994 | 616 |
| 8 | 4899 | 616 |
22 alts after pruning (22 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 161 | 6 | 167 |
| Fresh | 6 | 16 | 22 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 168 | 22 | 190 |
| Status | Error | Program |
| 52.0b | (-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (*.f64 (/.f64 (sqrt.f64 (-.f64 x lo)) 1) (/.f64 (sqrt.f64 (-.f64 x lo)) hi))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 -1) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 1 hi)) (log.f64 (/.f64 -1 lo)))))) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (cbrt.f64 (/.f64 (-.f64 x lo) hi)) (pow.f64 (cbrt.f64 (/.f64 (-.f64 x lo) hi)) 2) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (sqrt.f64 hi)) (/.f64 (cbrt.f64 (-.f64 x lo)) (sqrt.f64 hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (*.f64 (cbrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (*.f64 (/.f64 1 (sqrt.f64 hi)) (/.f64 (-.f64 x lo) (sqrt.f64 hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (/.f64 1 (/.f64 (cbrt.f64 hi) (cbrt.f64 lo))) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (sqrt.f64 (-.f64 x lo)) (*.f64 (sqrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 57.2b | (-.f64 (*.f64 (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 lo x) hi)) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (/.f64 1 (cbrt.f64 (/.f64 hi lo))) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (sqrt.f64 hi)) (/.f64 (cbrt.f64 (-.f64 x lo)) (sqrt.f64 hi)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (/.f64 (-.f64 x lo) hi) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 2)) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 52.0b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) 1) (/.f64 (cbrt.f64 (-.f64 x lo)) hi) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 58.5b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (+.f64 (pow.f64 (/.f64 hi lo) 3) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 lo) (/.f64 1 (cbrt.f64 hi))) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (*.f64 (cbrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (-.f64 x lo) (/.f64 1 hi) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (-.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 x lo) hi))) 1)) | |
| ▶ | 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) |
Compiled 7094 to 2671 computations (62.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.5b | (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) |
| 0.5b | (cbrt.f64 (/.f64 lo hi)) | |
| ✓ | 0.7b | (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) |
| 60.4b | (cbrt.f64 (*.f64 hi hi)) |
2 calls:
| 785.0ms | (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) |
| 741.0ms | (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) |
| 1× | batch-egg-rewrite |
| 653× | log1p-expm1-u_binary64 |
| 653× | expm1-log1p-u_binary64 |
| 327× | log-prod_binary64 |
| 123× | expm1-udef_binary64 |
| 123× | log1p-udef_binary64 |
2 calls:
| 45.0ms | (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) |
| 45.0ms | (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 14 |
| 1 | 149 | 14 |
| 2 | 1716 | 14 |
| 3 | 5110 | 14 |
| 1× | egg-herbie |
| 832× | fma-def_binary64 |
| 438× | associate-*l*_binary64 |
| 411× | fma-neg_binary64 |
| 394× | prod-exp_binary64 |
| 376× | associate-*r*_binary64 |
Useful iterations: 6 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 51 | 872 |
| 1 | 116 | 872 |
| 2 | 231 | 872 |
| 3 | 763 | 768 |
| 4 | 2781 | 688 |
| 5 | 4359 | 592 |
| 6 | 4426 | 584 |
| 7 | 4801 | 584 |
23 alts after pruning (23 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 174 | 15 | 189 |
| Fresh | 13 | 8 | 21 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 188 | 23 | 211 |
| Status | Error | Program |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (*.f64 (cbrt.f64 -1) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 1 hi)) (log.f64 (/.f64 -1 lo)))))) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (cbrt.f64 (/.f64 (-.f64 x lo) hi)) (pow.f64 (cbrt.f64 (/.f64 (-.f64 x lo) hi)) 2) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 lo hi))) (pow.f64 (cbrt.f64 (/.f64 lo hi)) 2) (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) 2)) (*.f64 (cbrt.f64 lo) (/.f64 1 (cbrt.f64 hi)))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (pow.f64 (cbrt.f64 (-.f64 x lo)) 2) (*.f64 (cbrt.f64 (-.f64 x lo)) (/.f64 1 hi)) (fma.f64 (neg.f64 (/.f64 1 hi)) lo (/.f64 lo hi)))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (/.f64 lo hi)))) (cbrt.f64 (exp.f64 (cbrt.f64 (/.f64 lo hi)))))) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (/.f64 lo hi)))))) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (cbrt.f64 lo) (cbrt.f64 hi))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (log.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) 2)) (/.f64 (cbrt.f64 lo) (cbrt.f64 hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi)))) 3) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (/.f64 (-.f64 x lo) hi) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 (expm1.f64 (cbrt.f64 (/.f64 lo hi))))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi)))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))))))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 52.0b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))))) (cbrt.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))))))) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))))))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 52.0b | (-.f64 (+.f64 1 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo))) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 x lo))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 -1) (exp.f64 (*.f64 1/3 (-.f64 (log.f64 (/.f64 1 hi)) (log.f64 (/.f64 -1 lo))))))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 1/9) (-.f64 (log.f64 (neg.f64 lo)) (log.f64 hi))) (cbrt.f64 (cbrt.f64 -1))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (log1p.f64 (expm1.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (/.f64 (cbrt.f64 (cbrt.f64 lo)) (cbrt.f64 (cbrt.f64 hi))) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi)))) (pow.f64 (cbrt.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi)))) 2)) 3) 2)) (cbrt.f64 (/.f64 lo hi))))) | |
| 51.9b | (fma.f64 (/.f64 x hi) (/.f64 lo hi) (fma.f64 (/.f64 1 (cbrt.f64 (*.f64 hi hi))) (/.f64 x (cbrt.f64 hi)) (*.f64 (neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 lo hi))) 3)))) | |
| 57.2b | (-.f64 (*.f64 (/.f64 lo hi) (/.f64 (-.f64 x lo) hi)) (/.f64 (-.f64 lo x) hi)) | |
| 58.5b | (+.f64 (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)) (+.f64 (pow.f64 (/.f64 hi lo) 3) (-.f64 (-.f64 1 (/.f64 x lo)) (*.f64 (/.f64 x lo) (*.f64 (+.f64 1 (/.f64 hi lo)) (/.f64 hi lo)))))) |
Compiled 7939 to 3091 computations (61.1% saved)
Total 0.5b remaining (0.9%)
Threshold costs 0.5b (0.9%)
Compiled 15650 to 8752 computations (44.1% saved)
| 1× | egg-herbie |
| 10× | *-commutative_binary64 |
| 7× | +-commutative_binary64 |
| 7× | sub-neg_binary64 |
| 6× | neg-sub0_binary64 |
| 6× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 30 | 64 |
| 1 | 41 | 64 |
| 2 | 51 | 64 |
| 3 | 65 | 64 |
| 4 | 73 | 64 |
| 5 | 78 | 64 |
| 6 | 80 | 64 |
| 7 | 79 | 64 |
Compiled 961 to 569 computations (40.8% saved)
Loading profile data...