(w, limit, need_hi)
| 704 | # minute, because it tries millions of cases. |
| 705 | if 0: |
| 706 | def consumer(w, limit, need_hi): |
| 707 | seen = set() |
| 708 | need = set() |
| 709 | def inner(w): |
| 710 | if w <= limit: |
| 711 | return |
| 712 | if w in seen: |
| 713 | return |
| 714 | seen.add(w) |
| 715 | lo = w >> 1 |
| 716 | hi = w - lo |
| 717 | need.add(hi if need_hi else lo) |
| 718 | inner(lo) |
| 719 | inner(hi) |
| 720 | inner(w) |
| 721 | exp = compute_powers(w, 1, limit, need_hi=need_hi) |
| 722 | assert exp.keys() == need |
| 723 | |
| 724 | from itertools import chain |
| 725 | for need_hi in (False, True): |
searching dependent graphs…