Пример #1
0
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
Пример #2
0
 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))
Пример #3
0
 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)