Пример #1
0
def c2p_2_1_4():
    m0 = Word.Mask('3333')
    m1 = Word.Mask('cccc')
    m2 = Word.Mask('5555')
    m3 = Word.Mask('aaaa')

    print "c2p 2x1 4-bitplanes".center(96, '-')

    a0 = Word.Data('a', color="31m")
    a1 = Word.Data('b', color="32m")
    a2 = Word.Data('c', color="33m")
    a3 = Word.Data('d', color="34m")

    Array.Print("Data:", a0, a1, a2, a3)

    b0 = (a0 & m1) | (a2.lsr(2) & m0)
    b1 = (a1 & m1) | (a3.lsr(2) & m0)
    b2 = (a0.lsl(2) & m1) | (a2 & m0)
    b3 = (a1.lsl(2) & m1) | (a3 & m0)

    Array.Print("Swap 2x2:", b0, b1, b2, b3)

    c0 = (b0 & m3) | (b1.lsr(1) & m2)
    c1 = (b0.lsl(1) & m3) | (b1 & m2)
    c2 = (b2 & m3) | (b3.lsr(1) & m2)
    c3 = (b2.lsl(1) & m3) | (b3 & m2)

    Array.Print("Swap 1x1:", c0, c1, c2, c3)
Пример #2
0
def c2p_1_1_8():
    m0 = Word.Mask('0f0f')
    m1 = Word.Mask('f0f0')
    m2 = Word.Mask('3333')
    m3 = Word.Mask('cccc')
    m4 = Word.Mask('5555')
    m5 = Word.Mask('aaaa')

    print "c2p 1x1 8-bitplanes".center(96, '-')

    a0 = Word.Data('a', color="31m")
    a1 = Word.Data('b', color="32m")
    a2 = Word.Data('c', color="33m")
    a3 = Word.Data('d', color="34m")
    a4 = Word.Data('e', color="35m")
    a5 = Word.Data('f', color="36m")
    a6 = Word.Data('g', color="37m")
    a7 = Word.Data('h', color="38m")

    Array.Print("Data:", a0, a1, a2, a3, a4, a5, a6, a7)

    b0 = (a0 & m1) | (a4.lsr(4) & m0)
    b1 = (a1 & m1) | (a5.lsr(4) & m0)
    b2 = (a2 & m1) | (a6.lsr(4) & m0)
    b3 = (a3 & m1) | (a7.lsr(4) & m0)
    b4 = (a0.lsl(4) & m1) | (a4 & m0)
    b5 = (a1.lsl(4) & m1) | (a5 & m0)
    b6 = (a2.lsl(4) & m1) | (a6 & m0)
    b7 = (a3.lsl(4) & m1) | (a7 & m0)

    Array.Print("Swap 4x4:", b0, b1, b2, b3, b4, b5, b6, b7)

    c0 = (b0 & m3) | (b2.lsr(2) & m2)
    c1 = (b1 & m3) | (b3.lsr(2) & m2)
    c2 = (b0.lsl(2) & m3) | (b2 & m2)
    c3 = (b1.lsl(2) & m3) | (b3 & m2)
    c4 = (b4 & m3) | (b6.lsr(2) & m2)
    c5 = (b5 & m3) | (b7.lsr(2) & m2)
    c6 = (b4.lsl(2) & m3) | (b6 & m2)
    c7 = (b5.lsl(2) & m3) | (b7 & m2)

    Array.Print("Swap 2x2:", c0, c1, c2, c3, c4, c5, c6, c7)

    d0 = (c0 & m5) | (c1.lsr(1) & m4)
    d1 = (c0.lsl(1) & m5) | (c1 & m4)
    d2 = (c2 & m5) | (c3.lsr(1) & m4)
    d3 = (c2.lsl(1) & m5) | (c3 & m4)
    d4 = (c4 & m5) | (c5.lsr(1) & m4)
    d5 = (c4.lsl(1) & m5) | (c5 & m4)
    d6 = (c6 & m5) | (c7.lsr(1) & m4)
    d7 = (c6.lsl(1) & m5) | (c7 & m4)

    Array.Print("Swap 1x1:", d0, d1, d2, d3, d4, d5, d6, d7)