Esempio n. 1
0
def splitGens(gen1,gen2,trans1,trans2,ellDir,g1Path,g2Acc,bigon):##g2Acc contains a point of bigon (the one of g2)
    newEllDir=deepcopy(ellDir)
    newEllDirp=deepcopy(ellDir)
    holes=findHoles(gen1,gen2,trans1,trans2,ellDir,bigon)
    isH=[0]*len(gen1.perm)
    coPath=gen2.perm[:]
    coPath[bigon[0][0]]=bigon[0][1]
    for h in holes:
        tmp=2
        if isIn(coPath,g1Path,h[0],gen1.perm[h[0]]):
            tmp=1
        for x in h[1]:
            isH[x]=tmp
    g1=gen1
    g2=gen([],[],[],0)
    g1p=gen([],[],[],0)
    g2p=gen2
    for i in xrange(len(gen1.perm)):
        tmp1=g1Path[i]
        tmp2=g2Acc[i]
        if tmp2:
            g2.perm.append(tmp2[1])
            g2.xShift.append(tmp2[2])
            g2.yShift.append(tmp2[3])
            g1p.perm.append(tmp2[1])
            if bigon[1][0]==0 and i==bigon[1][1] or bigon[1][0]==1 and tmp2[1]==bigon[1][1]:###unfinished
                g1p.xShift.append(tmp2[2]*(bigon[1][0]*2-1))
                g1p.yShift.append(tmp2[3]*(1-bigon[1][0]*2))
            else:
                g1p.xShift.append(tmp2[2])
                g1p.yShift.append(tmp2[3])
        else:
            if isH[i]==2 or isH[i]==0 and not tmp1:
                gg=gen1
                if newEllDir[0][i]!=0: newEllDir[0][i]=1
                if newEllDir[1][gen1.perm[i]]!=0: newEllDir[1][gen1.perm[i]]=1
            else:
                gg=gen2
                if newEllDirp[0][i]!=0: newEllDirp[0][i]=1
                if newEllDirp[1][gen2.perm[i]]!=0: newEllDirp[1][gen2.perm[i]]=1
            g2.perm.append(gg.perm[i])
            g2.xShift.append(gg.xShift[i])
            g2.yShift.append(gg.yShift[i])
            g1p.perm.append(gg.perm[i])
            g1p.xShift.append(gg.xShift[i])
            g1p.yShift.append(gg.yShift[i])
            
    
##    g1.show()
##    g2.show()
##    g1p.show()
##    g2p.show()
##    print "fin"
    return ((g1,g2,newEllDir),(g1p,g2p,newEllDirp))
Esempio n. 2
0
def splitGens(gen1, gen2, trans1, trans2, ellDir, g1Path, g2Acc,
              bigon):  # g2Acc contains a point of bigon (the one of g2)
    newEllDir = deepcopy(ellDir)
    newEllDirp = deepcopy(ellDir)
    holes = findHoles(gen1, gen2, trans1, trans2, ellDir, bigon)
    isH = [0] * len(gen1.perm)
    coPath = gen2.perm[:]
    coPath[bigon[0][0]] = bigon[0][1]
    for h in holes:
        tmp = 2
        if isIn(coPath, g1Path, h[0], gen1.perm[h[0]]):
            tmp = 1
        for x in h[1]:
            isH[x] = tmp
    g1 = gen1
    g2 = gen([], [], [], 0)
    g1p = gen([], [], [], 0)
    g2p = gen2
    for i in range(len(gen1.perm)):
        tmp1 = g1Path[i]
        tmp2 = g2Acc[i]
        if tmp2:
            g2.perm.append(tmp2[1])
            g2.xShift.append(tmp2[2])
            g2.yShift.append(tmp2[3])
            g1p.perm.append(tmp2[1])
            if bigon[1][0] == 0 and i == bigon[1][1] or bigon[1][
                    0] == 1 and tmp2[1] == bigon[1][1]:  # unfinished
                g1p.xShift.append(tmp2[2] * (bigon[1][0] * 2 - 1))
                g1p.yShift.append(tmp2[3] * (1 - bigon[1][0] * 2))
            else:
                g1p.xShift.append(tmp2[2])
                g1p.yShift.append(tmp2[3])
        else:
            if isH[i] == 2 or isH[i] == 0 and not tmp1:
                gg = gen1
                if newEllDir[0][i] != 0:
                    newEllDir[0][i] = 1
                if newEllDir[1][gen1.perm[i]] != 0:
                    newEllDir[1][gen1.perm[i]] = 1
            else:
                gg = gen2
                if newEllDirp[0][i] != 0:
                    newEllDirp[0][i] = 1
                if newEllDirp[1][gen2.perm[i]] != 0:
                    newEllDirp[1][gen2.perm[i]] = 1
            g2.perm.append(gg.perm[i])
            g2.xShift.append(gg.xShift[i])
            g2.yShift.append(gg.yShift[i])
            g1p.perm.append(gg.perm[i])
            g1p.xShift.append(gg.xShift[i])
            g1p.yShift.append(gg.yShift[i])

    return ((g1, g2, newEllDir), (g1p, g2p, newEllDirp))
Esempio n. 3
0
##            print "inter"
            inter=findAllInter(ell)
##            print inter
            print "cuts"
            print findCuts(obtuse,flats,rect,gen1,gen2,ell,ellDir,trans1,trans2,inter)
            
            frm=show_all.floerDiagram((rect,ell,[gen1,gen2]))
            frm.Show()
    return 0
##debug
app.MainLoop()
print totalG
##end debug
if __name__ == "__main__":
##    from genGen import gen
##    import wx
##    import  show_all
##    app=wx.PySimpleApp()
##    g1=gen([-1, 2, 0, 3, 4, 5], [0, 1, 1, 1, -1, -1], [0, 1, 1, -1, -1, -1],0)
##    g2=gen([-1, 2, 3, 0, 4, 5], [0, 1, 1, 1, -1, -1], [0, 1, -1, 1, -1, -1],0)
##    data=([[1,3],[2,5],[0,4],[0,3],[2,4],[1,5]],([[1,3],[2,5],[0,4],[0,3],[2,4],[1,5]],[[0,5]]*6),[g1,g2])
##    frm=show_all.floerDiagram(data)
##    frm.Show()
##    app.MainLoop()
    gen1=gen([1, 0, 4, 2, 5, 6, 8, 7, -1], [-1, -1, 1, 1, -1, 1, -1, -1, 0], [1, 1, -1, 1, -1, 1, -1, -1, 0],0)
    gen2=gen([6, 1, 4, 0, 2, 7, 8, 5, -1], [-1, -1, 1, 1, -1, 1, -1, -1, 0], [-1, 1, -1, 1, 1, -1, -1, 1, 0],0)
    rect=[[1, 6], [0, 2], [1, 4], [0, 3], [2, 5], [4, 7], [6, 8], [5, 7], [3, 8]]
    ell=([[1, 6], [0, 2], [1, 4], [0, 3], [2, 5], [4, 7], [6, 8], [5, 7], -1], [[1, 3], [0, 2], [1, 4], -1, [2, 5], [4, 7], [0, 6], [5, 7], [6, 8]])
    ellDir=([1, -1, -1, -1, -1, -1, 1, -1, 0], [1, -1, -1, 0, 1, -1, -1, -1, 1])
    print deepBdMap(rect,gen1,gen2,ell,ellDir)
Esempio n. 4
0
def copyGen(g):
    return gen(g.perm[:],g.xShift[:],g.yShift[:],0)
Esempio n. 5
0
            tmp=deepBdMapRec(g[0],genGoal,depth-1,init,immobile,1-upDown,g[1],hmap)
            if tmp==0: hmap[ttt]=g[1]
            parity+=tmp
    global debug
    debug[parity]+=1
    return parity
def initWith(rect,ell):
    tr=[[] for i in xrange(len(rect))]
    for i,p in enumerate(rect):
        tr[p[0]].append(i)
        tr[p[1]].append(i)
    return (listPossRectMp(rect,ell),rect,tr)  ##0 in init is possRect#1 in init is transposed rect
if __name__ == "__main__":
    data=([[2, 6], [1, 5], [4, 7], [2, 9], [0, 3], [1, 6], [0, 4], [3, 8], [7, 9], [5, 8]],
          ([[2, 6], [1, 5], [4, 7], -1, [0, 3], [1, 6], [0, 4], [3, 8], [7, 9], [5, 8]],
           [[4, 6], [1, 5], [0, 3], [4, 7], [2, 6], [1, 9], [0, 5], [2, 8], [7, 9], -1]),
          [gen([6, 2, 4, -1, 0, 1, 3, 8, 7, 5],[-1, -1, -1, 0, 1, 1, -1, 1, -1, -1],[-1, -1, 1, 0, 1, 1, -1, -1, 1, 1],0),
           gen([6, 2, 4, -1, 1, 3, 0, 8, 7, 5],[-1, -1, -1, 0, 1, 1, -1, 1, -1, -1],[-1, -1, 1, 0, -1, -1, 1, -1, 1, 1],0)])
    init=initWith(data[0],data[1])
##    print findAge(gen1,rect,init[2])
    gen1=data[2][0]
    gen2=data[2][1]
    immo=[1,1,1,1,0,0,0,1,1,1]
##    for j in listRect(gen1,init[0]):j[0].show()
##    deepBdMapRec(gen1,gen1,19,init)
##    import profile
##    profile.run("tmp=deepBdMapRec(gen1,gen2,99,init,immo)")
    tmp=deepBdMapRec(gen1,gen2,99,init,immo)
    print tmp
    
Esempio n. 6
0
def copyGen(g):
    return gen(g.perm[:], g.xShift[:], g.yShift[:], 0)
Esempio n. 7
0
        tr[p[0]].append(i)
        tr[p[1]].append(i)
    return (listPossRectMp(rect, ell), rect, tr)


# 0 in init is possRect
# 1 in init is transposed rect

if __name__ == "__main__":
    data = ([[2, 6], [1, 5], [4, 7], [2, 9], [0, 3], [1, 6], [0, 4], [3, 8],
             [7, 9], [5, 8]], ([[2, 6], [1, 5], [4, 7], -1, [0, 3], [1, 6],
                                [0, 4], [3, 8], [7, 9], [5, 8]],
                               [[4, 6], [1, 5], [0, 3], [4, 7], [2, 6], [1, 9],
                                [0, 5], [2, 8], [7, 9], -1]), [
                                    gen([6, 2, 4, -1, 0, 1, 3, 8, 7, 5],
                                        [-1, -1, -1, 0, 1, 1, -1, 1, -1, -1],
                                        [-1, -1, 1, 0, 1, 1, -1, -1, 1, 1], 0),
                                    gen([6, 2, 4, -1, 1, 3, 0, 8, 7, 5],
                                        [-1, -1, -1, 0, 1, 1, -1, 1, -1, -1],
                                        [-1, -1, 1, 0, -1, -1, 1, -1, 1, 1], 0)
                                ])
    init = initWith(data[0], data[1])
    #    print(findAge(gen1, rect, init[2]))
    gen1 = data[2][0]
    gen2 = data[2][1]
    immo = [1, 1, 1, 1, 0, 0, 0, 1, 1, 1]
    #    for j in listRect(gen1, init[0]):j[0].show()
    #    deepBdMapRec(gen1, gen1, 19, init)

    tmp = deepBdMapRec(gen1, gen2, 99, init, immo)
    print(tmp)
Esempio n. 8
0
            frm = show_all.floerDiagram((rect, ell, [gen1, gen2]))
            frm.Show()
    return 0


# debug
app.MainLoop()
print(totalG)
# end debug

if __name__ == "__main__":
    #     app=wx.PySimpleApp()
    #     g1=gen([-1, 2, 0, 3, 4, 5], [0, 1, 1, 1, -1, -1], [0, 1, 1, -1, -1, -1], 0)
    #     g2=gen([-1, 2, 3, 0, 4, 5], [0, 1, 1, 1, -1, -1], [0, 1, -1, 1, -1, -1], 0)
    #     data=([[1, 3], [2, 5], [0, 4], [0, 3], [2, 4], [1, 5]], ([[1, 3], [2, 5], [0, 4], [0, 3], [2, 4], [1, 5]], [[0, 5]]*6), [g1, g2])
    #     frm=show_all.floerDiagram(data)
    #     frm.Show()
    #     app.MainLoop()
    gen1 = gen([1, 0, 4, 2, 5, 6, 8, 7, -1], [-1, -1, 1, 1, -1, 1, -1, -1, 0],
               [1, 1, -1, 1, -1, 1, -1, -1, 0], 0)
    gen2 = gen([6, 1, 4, 0, 2, 7, 8, 5, -1], [-1, -1, 1, 1, -1, 1, -1, -1, 0],
               [-1, 1, -1, 1, 1, -1, -1, 1, 0], 0)
    rect = [[1, 6], [0, 2], [1, 4], [0, 3], [2, 5], [4, 7], [6, 8], [5, 7],
            [3, 8]]
    ell = ([[1, 6], [0, 2], [1, 4], [0, 3], [2, 5], [4, 7], [6, 8], [5, 7],
            -1], [[1, 3], [0, 2], [1, 4], -1, [2, 5], [4, 7], [0, 6], [5, 7],
                  [6, 8]])
    ellDir = ([1, -1, -1, -1, -1, -1, 1, -1,
               0], [1, -1, -1, 0, 1, -1, -1, -1, 1])
    print(deepBdMap(rect, gen1, gen2, ell, ellDir))