def build_loop_step(ds, loop, n, iter=1): n2 = n*n +n dsr = {} s = set() ss = set() pbar = start_progress_bar(iter, len(ds)) c = 0 for gnum in ds: c += 1 pbar.update(c) gset = set() eset = set() for sloop in ds[gnum]: num = sloop | gnum if not num in s: g = bfu.num2CG(num, n) s.add(num) if bfu.forms_loop(g, loop): ss.add(num) else: gset.add((num,sloop)) eset.add(sloop) for gn,e in gset: dsr[gn] = eset - set([e]) pbar.finish() return dsr, ss
def prune(g): numh = bfu.g2num(g) cannotprune = True for l in gk.edgelist(gk.digonly(g)): gk.delanedge(g,l) if bfu.forms_loop(g, loop): cannotprune = False prune(g) gk.addanedge(g,l) if cannotprune: s.add(bfu.g2num(g))
def prune(g): numh = bfu.g2num(g) cannotprune = True for l in sls.simple_loops(gk.digonly(g),0): gg = delAloop(g,bfu.g2num(loop2graph(l,n))) if bfu.forms_loop(gg, loop): cannotprune = False prune(gg) if cannotprune: print 'one' s.add(g)