Time bar (total: 3.9s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 50% | 50% | 0 |
| 0% | 50% | 50% | 1 |
| 25% | 25% | 50% | 2 |
| 25% | 25% | 50% | 3 |
| 31.2% | 18.7% | 50% | 4 |
| 31.2% | 18.7% | 50% | 5 |
| 34.3% | 15.6% | 50% | 6 |
| 34.3% | 15.6% | 50% | 7 |
| 35.9% | 14% | 50% | 8 |
| 35.9% | 14% | 50% | 9 |
| 36.7% | 13.3% | 50% | 10 |
| 36.7% | 13.3% | 50% | 11 |
| 37.1% | 12.9% | 50% | 12 |
| 37.1% | 12.9% | 50% | 13 |
| 37.3% | 12.7% | 50% | 14 |
Compiled 20 to 14 computations (30% saved)
| 788.0ms | 6235× | body | 128 | valid |
| 325.0ms | 547× | body | 4096 | valid |
| 321.0ms | 657× | body | 2048 | valid |
| 217.0ms | 431× | body | 1024 | valid |
| 80.0ms | 260× | body | 512 | valid |
| 26.0ms | 126× | body | 256 | valid |
Compiled 57 to 40 computations (29.8% saved)
| 1× | egg-herbie |
| 203× | fma-def_binary64 |
| 142× | fma-neg_binary64 |
| 51× | distribute-rgt-in_binary64 |
| 42× | cancel-sign-sub-inv_binary64 |
| 28× | sub-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 15 |
| 1 | 20 | 15 |
| 2 | 33 | 15 |
| 3 | 50 | 15 |
| 4 | 69 | 15 |
| 5 | 98 | 15 |
| 6 | 151 | 15 |
| 7 | 211 | 15 |
| 8 | 263 | 15 |
| 9 | 305 | 15 |
| 10 | 343 | 15 |
| 11 | 379 | 15 |
| 12 | 396 | 15 |
| 13 | 415 | 15 |
| 14 | 428 | 15 |
| 15 | 465 | 15 |
| 16 | 477 | 15 |
| 17 | 486 | 15 |
| 18 | 449 | 15 |
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 |
| ▶ | 13.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) |
| 36.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re)))) |
Compiled 85 to 61 computations (28.2% saved)
Found 2 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (hypot.f64 re im) |
| ✓ | 0.5b | (-.f64 (hypot.f64 re im) re) |
2 calls:
| 11.0ms | (-.f64 (hypot.f64 re im) re) |
| 9.0ms | (hypot.f64 re im) |
| 1× | rewrite-expression-head |
| 12× | *-un-lft-identity_binary64 |
| 12× | add-sqr-sqrt_binary64 |
| 10× | add-cube-cbrt_binary64 |
| 9× | prod-diff_binary64 |
| 4× | add-log-exp_binary64 |
2 calls:
| 5.0ms | (-.f64 (hypot.f64 re im) re) |
| 0.0ms | (hypot.f64 re im) |
| 1× | egg-herbie |
| 952× | fma-neg_binary64 |
| 648× | fma-def_binary64 |
| 605× | times-frac_binary64 |
| 452× | associate-*l*_binary64 |
| 282× | associate-/r*_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 143 | 1564 |
| 1 | 361 | 1325 |
| 2 | 1177 | 1271 |
| 3 | 4676 | 1269 |
| 4 | 5270 | 1269 |
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 99 | 5 | 104 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 100 | 6 | 106 |
| Status | Error | Program |
| ✓ | 13.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) |
| 56.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re)))))) | |
| 54.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))) | |
| 29.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| ▶ | 15.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))) |
| 15.1b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))))) |
Compiled 2368 to 1430 computations (39.6% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (sqrt.f64 (hypot.f64 re im)) |
| 0.0b | (hypot.f64 re im) | |
| ✓ | 14.9b | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) |
2 calls:
| 30.0ms | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) |
| 15.0ms | (sqrt.f64 (hypot.f64 re im)) |
| 1× | rewrite-expression-head |
| 4× | add-sqr-sqrt_binary64 |
| 3× | sqrt-prod_binary64 |
| 3× | *-un-lft-identity_binary64 |
| 3× | add-cube-cbrt_binary64 |
| 3× | pow1_binary64 |
2 calls:
| 1.0ms | (sqrt.f64 (hypot.f64 re im)) |
| 0.0ms | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) |
| 1× | egg-herbie |
| 613× | fma-neg_binary64 |
| 289× | distribute-rgt-neg-in_binary64 |
| 287× | distribute-lft-neg-in_binary64 |
| 276× | associate-*r*_binary64 |
| 249× | fma-def_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 121 | 692 |
| 1 | 281 | 642 |
| 2 | 748 | 630 |
| 3 | 2893 | 630 |
| 4 | 4838 | 630 |
| 5 | 4935 | 630 |
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 171 | 1 | 172 |
| Fresh | 0 | 4 | 4 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 172 | 6 | 178 |
| Status | Error | Program |
| ✓ | 13.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) |
| 56.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re)))))) | |
| 54.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))) | |
| 29.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| ▶ | 15.1b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))))) |
| 18.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))))) |
Compiled 4632 to 2550 computations (44.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.5b | (*.f64 (cbrt.f64 re) (cbrt.f64 re)) |
| ✓ | 0.6b | (cbrt.f64 re) |
| ✓ | 14.8b | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) |
| ✓ | 60.2b | (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))) |
4 calls:
| 47.0ms | (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))) |
| 35.0ms | (*.f64 (cbrt.f64 re) (cbrt.f64 re)) |
| 34.0ms | (cbrt.f64 re) |
| 32.0ms | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) |
| 1× | rewrite-expression-head |
| 21× | add-sqr-sqrt_binary64 |
| 19× | cbrt-prod_binary64 |
| 13× | *-un-lft-identity_binary64 |
| 13× | add-cube-cbrt_binary64 |
| 11× | pow1_binary64 |
4 calls:
| 5.0ms | (*.f64 (cbrt.f64 re) (cbrt.f64 re)) |
| 1.0ms | (cbrt.f64 re) |
| 0.0ms | (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))) |
| 0.0ms | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re))))) |
| 1× | egg-herbie |
| 694× | times-frac_binary64 |
| 657× | fma-neg_binary64 |
| 363× | distribute-neg-frac_binary64 |
| 343× | associate-/r*_binary64 |
| 273× | associate-/l*_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 128 | 1113 |
| 1 | 257 | 994 |
| 2 | 834 | 908 |
| 3 | 3431 | 893 |
| 4 | 4624 | 881 |
| 5 | 4982 | 881 |
| 6 | 4731 | 881 |
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 401 | 1 | 402 |
| Fresh | 0 | 4 | 4 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 402 | 6 | 408 |
| Status | Error | Program |
| 46.2b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3)) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))))) | |
| 29.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| ✓ | 13.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) |
| 56.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re)))))) | |
| 54.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))) | |
| ▶ | 18.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re))))))) |
Compiled 18239 to 4286 computations (76.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.0b | (sqrt.f64 (hypot.f64 re im)) | |
| 0.0b | (hypot.f64 re im) | |
| ✓ | 4.8b | (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))) |
| 14.9b | (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)) |
1 calls:
| 31.0ms | (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))) |
| 1× | rewrite-expression-head |
| 4× | exp-prod_binary64 |
| 3× | exp-sum_binary64 |
| 3× | log-prod_binary64 |
| 3× | *-un-lft-identity_binary64 |
| 3× | add-sqr-sqrt_binary64 |
1 calls:
| 2.0ms | (exp.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))) |
| 1× | egg-herbie |
| 490× | fma-def_binary64 |
| 469× | fma-neg_binary64 |
| 442× | cancel-sign-sub-inv_binary64 |
| 237× | associate-/r/_binary64 |
| 213× | associate-/l/_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 82 | 592 |
| 1 | 172 | 355 |
| 2 | 446 | 353 |
| 3 | 1804 | 345 |
| 4 | 4720 | 345 |
| 5 | 5026 | 345 |
8 alts after pruning (7 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 212 | 3 | 215 |
| Fresh | 0 | 4 | 4 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 213 | 8 | 221 |
| Status | Error | Program |
| 55.0b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 (*.f64 1/2 (/.f64 (*.f64 im im) re))))))) | |
| 46.2b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (cbrt.f64 (pow.f64 (-.f64 (hypot.f64 re im) re) 3)) (fma.f64 (neg.f64 (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (cbrt.f64 re)) (*.f64 (cbrt.f64 re) (*.f64 (cbrt.f64 re) (cbrt.f64 re)))))))) | |
| 29.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 im))) | |
| ✓ | 13.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (-.f64 (hypot.f64 re im) re)))) |
| 56.8b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) -1/8 (*.f64 1/2 (/.f64 (*.f64 im im) re)))))) | |
| 54.6b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 1/2 (/.f64 (pow.f64 im 2) re))))) | |
| 32.3b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (exp.f64 (log.f64 im))))) | |
| 20.4b | (*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (exp.f64 (*.f64 (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))) (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))) (cbrt.f64 (log.f64 (fma.f64 (sqrt.f64 (hypot.f64 re im)) (sqrt.f64 (hypot.f64 re im)) (neg.f64 re)))))))) |
Compiled 5894 to 3276 computations (44.4% saved)
Total 4.8b remaining (39.5%)
Threshold costs 0b (0%)
Compiled 4114 to 2515 computations (38.9% saved)
| Iters | Range | Point | |
|---|---|---|---|
| 7 | 1.529553500823353e+128 | 1.1538653277564137e+130 | 2.7128668689896868e+129 |
Compiled 3 to 2 computations (33.3% saved)
| 1× | egg-herbie |
| 6× | *-commutative_binary64 |
| 2× | +-commutative_binary64 |
| 2× | sub-neg_binary64 |
| 1× | neg-sub0_binary64 |
| 1× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 39 |
| 1 | 27 | 39 |
| 2 | 32 | 39 |
| 3 | 34 | 39 |
| 4 | 35 | 39 |
| 5 | 35 | 39 |
Compiled 221 to 146 computations (33.9% saved)
Loading profile data...