Ejemplo n.º 1
0
def test_canonical_structure_generation():
    """
    Check the general signature function of 2D, 3D,
    4D, and 5D canonical objects
    """
    d = Seq([1, 1])

    b = Block.power(d)
    b_f = signature_function(b)
    print(b_f)
    print(b_f.i())
    print()

    c = Cube.canonical(d)
    c_f = signature_function(c)
    print(c_f)
    print(c_f.i())
    print()

    h = canonical(d)
    h_f = signature_function(h)
    print(h_f)
    print(h_f.i())
    print(Sig(d).iter_add(2))
    print()

    t = canonical(d, dim=5, l=8)

    t_f = signature_function(t)
    print(t_f)
    print(t_f.i())
    print(Sig(d).iter_add(3))
    print()
Ejemplo n.º 2
0
def tesseract_trapezoid_test():
    d = Seq([1, 1])
    g = Seq([1, 1])
    print(d, ":::", g)
    s = g_prism(d, g, dim=5)

    s_f = signature_function(s)
    print(s_f)
    s_f = signature_function(s)

    print(s_f)
    print(s_f.i())
    print(general_trapezoid_identity(d, g, 5))
Ejemplo n.º 3
0
def block_multiplication_hypercube():
    l = 10
    d = Seq([1, 1])
    bd = Block.power(d, l)

    g0 = Seq([2, -1])
    bg0 = Block.power(g0, l)

    g1 = Seq([1, -1])
    bg1 = Block.power(g1, l)

    s = [Cube.blank(l) for n in range(l)]
    print("structure built")

    temp0 = Block.power(x, l)
    for n in range(l):
        temp1 = bg1
        s[n][0] = bd * temp0
        for k in range(1, l):
            s[n][k] = bd * (temp0 * temp1)
            temp1 *= bg1
        print(f"completed {n}")
        temp0 *= bg0

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
    print()
Ejemplo n.º 4
0
def power_hypercube():
    """
    A demonstration of the power hypercube
    """
    l = 20
    d0 = Seq([1, 1])
    d1 = Seq([2, -1])
    d2 = Seq([1, -1])

    s = [Cube.blank(l) for n in range(l)]

    temp0 = Seq([1])
    for n in range(l):
        temp1 = Seq([1])
        for k in range(l):
            temp2 = Seq([1])
            for t in range(l):
                s[n][k][t] = temp0 * temp1 * temp2
                temp2 *= d2
            temp1 *= d1
        print(f"completed {n}")
        temp0 *= d0

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())

    print(Sig(d0) + Sig(d1) + Sig(d2))
Ejemplo n.º 5
0
def binomial_simplex_6D(d: Seq):
    l = 10

    s = [[[Cube.blank(l) for n in range(l)] for k in range(l)]
         for t in range(l)]

    temp_n = Seq(1)
    for n in range(l):
        temp_k = Seq(1)
        for k in range(n + 1):
            temp_t = Seq(1)
            for t in range(k + 1):
                temp_p = Seq(1)
                for p in range(t + 1):
                    temp_y = Seq(1)
                    for y in range(p + 1):
                        temp_p_y = d**(p - y)
                        for r in range(p - y + 1):
                            s[n][k][t][p][y][r] = temp_n[k] * temp_k[
                                t] * temp_t[p] * temp_p[y] * temp_p_y[r]
                        temp_y *= d
                    temp_p *= d
                temp_t *= d
            temp_k *= d
            print(f"completed {n} {k}")
        temp_n *= d

    s_f = signature_function(s)

    # print(s_f)
    # print(s_f.i())

    return s_f.i()
Ejemplo n.º 6
0
def binomial_simplex_tesseract(d: Seq):
    l = 10

    s = [[Cube.blank(l) for n in range(l)] for k in range(l)]

    temp_n = Seq(1)
    for n in range(l):
        temp_k = Seq(1)
        for k in range(n + 1):
            temp_t = Seq(1)
            for t in range(k + 1):
                temp_p = Seq(1)
                for p in range(t + 1):
                    temp_t_p = d**(t - p)
                    for y in range(t - p + 1):
                        s[n][k][t][p][y] = temp_n[k] * temp_k[t] * temp_t[
                            p] * temp_t_p[y]
                    temp_p *= d
                temp_t *= d
            temp_k *= d
            print(f"completed {n} {k}")
        temp_n *= d

    s_f = signature_function(s)

    print(s_f)
    print(s_f.i())

    out = d[0]
    out += x * d[1] * d[0]
    out += x**2 * d[1]**2 * d[0]**2
    out += x**3 * (d[0] + 1) * d[1]**3

    return out
Ejemplo n.º 7
0
def binomial_simplex_hypercube():
    l = 20
    d = Seq([2, -1])

    s = [Cube.blank(l) for n in range(l)]

    temp_n = Seq(1)
    for n in range(l):
        temp_k = Seq(1)
        for k in range(n + 1):
            temp_t = Seq(1)
            for t in range(k + 1):
                temp_k_t = d**(k - t)
                for p in range(k - t + 1):
                    s[n][k][t][p] = temp_n[k] * temp_k[t] * temp_k_t[p]
                temp_t *= d
            temp_k *= d
            print(f"completed {n} {k}")
        temp_n *= d
    s_f = signature_function(s)

    print(s_f)
    print(s_f.i())

    print(d[0] + (x * d[0]**2 * d[1]) + (x**2 * ((d[0] + 1) * d[1]**2)))
Ejemplo n.º 8
0
def seq_block_multi_signature_5D():
    l = 8

    d = Seq([1, 1])
    b = Block.power(d, l)

    g1 = Seq([1, 1])
    g2 = Seq([2, 1])
    g3 = Seq([1, 1, 1])

    s = [[Cube.blank(l) for n in range(l)] for k in range(l)]

    for n in range(l):
        for k in range(l):
            for t in range(l):
                for p in range(l):
                    s[n][k][t][p] = ((g1**n)*(g2**k)*(g3**t)*b).f()
            print(f"completed {n} {k}")

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())

    # The identity
    print(Sig(d) + Sig(g1) + Sig(g2) + Sig(g3) + Sig(1))
Ejemplo n.º 9
0
def hypercube_trapezoid_test():
    d = Seq([1, 1])
    g = Seq([1, 1])
    s = g_prism(d, g, dim=4)

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
    print(general_trapezoid_identity(d, g, dim=4))
Ejemplo n.º 10
0
def six_dimensional_test():
    d = Seq([1, 1])
    g = Seq([1, 1])
    print(d, ":::", g)
    s = g_prism(d, g, dim=6, l=5)
    s_f = signature_function(s)

    print(s_f)
    print(s_f.i())
    print(general_trapezoid_identity(d, g, dim=6))
Ejemplo n.º 11
0
def catalan_triangle_4D_prism():
    l = 15
    b = catalan_triangle()

    s = [Cube.prism(b, l) for n in range(l)]

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
    print()
Ejemplo n.º 12
0
def test_prism_structure_generation():
    """
    Generate and test an N-prism
    """
    l = 10
    d = Seq([1, 1, 1])
    b = Block.power(d, l)
    dim = 6

    s = prism(b, dim=dim)
    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
    print(Sig(d) + Sig(1).iter_add(dim - 2))
Ejemplo n.º 13
0
def g_prism_sen_test_5D():
    l = 10
    d = Seq([1, -1])
    g0 = Seq([1])
    g1 = Seq([1])
    g2 = Seq([1])

    s = g_prism(d, [g0, g1, g2], l=l, block=Block.sen(d, l).truncate(l))

    s_f = signature_function(s)

    print(s_f[::2])
    print(s_f[::2].i())

    print(Sig(g0) + Sig(g1) + Sig(g2) + Sig(1).iter_add(5))
Ejemplo n.º 14
0
Archivo: sen.py Proyecto: cxr00/SNR.py
def sen_hypercube():
    l = 20
    d = Seq([1, -1])
    g0 = Seq([1, -1])
    g1 = Seq([1, 1])
    b = Block.sen(d, l)
    s = [Cube.blank(l) for n in range(l)]

    for n in range(l):
        for k in range(l):
            s[n][k] = g0**n * g1**k * b
        print(f"completed {n}")

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
Ejemplo n.º 15
0
Archivo: sen.py Proyecto: cxr00/SNR.py
def sen_tesseract():
    l = 15
    d = Seq([1, -1])
    g0 = Seq([-1])
    g1 = Seq([1])
    g2 = Seq([-1])
    b = Block.sen(d, l)
    s = [[Cube.blank(l) for n in range(l)] for k in range(l)]

    for n in range(l):
        for k in range(l):
            for t in range(l):
                s[n][k][t] = g0**n * g1**k * g2**t * b
        print(f"completed {n}")

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
Ejemplo n.º 16
0
def seq_block_4D():
    l = 10
    d = Seq([1, 1])
    g = Seq([1, 1])
    b = Block.power(d, l)
    out = canonical(d, l=l)

    for n in range(l):
        for k in range(l):
            for t in range(l):
                out[n][k][t] = (g**(n + k + t) * b).f()
        print(f"completed {n}")

    out_f = signature_function(out)
    print(out_f)
    print(out_f.i())

    # The identity
    print(Sig(d) + Sig(g).iter_add(3))
Ejemplo n.º 17
0
def special_hypercube(d, g0, g1):
    l = 15
    b = Block.power(d, l).truncate(l)

    s = [Cube.blank(l) for n in range(l)]

    temp0 = Seq(1)
    for n in range(l):
        temp1 = Seq(1)
        for k in range(l):
            s[n][k] = temp0 * temp1 * b
            temp1 *= g1
        temp0 *= g0

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())

    return s
Ejemplo n.º 18
0
def alt_power_trapezoid(d, g0, g1):
    l = 15

    s = [Cube.blank(l) for n in range(l)]

    g0_f = g0.f(l)
    g1_f = g1.f(l)

    b = Block.power(d, l).truncate(l)

    for n in range(l):
        for k in range(l):
            s[n][k] = b * g0_f[:n + 1] * g1_f[:k + 1]
        print(f"completed {n}")

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())

    return s_f
Ejemplo n.º 19
0
def g_prism_5D(d, g0, g1, g2, l=10):

    s = [[Cube.blank(l) for n in range(l)] for k in range(l)]

    g0_f = g0.f(l)
    g1_f = g1.f(l)
    g2_f = g2.f(l)

    b = Block.power(d, l).truncate(l)

    for n in range(l):
        for k in range(l):
            for t in range(l):
                s[n][k][t] = b * g0_f[:n + 1] * g1_f[:k + 1] * g2_f[:t + 1]
            print(f"completed {n} {k}")

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())

    return s_f
Ejemplo n.º 20
0
Archivo: sen.py Proyecto: cxr00/SNR.py
def sen_hypercube_g_prism():
    """
    Again d must be fixed at {1, -1} for this identity
    """
    l = 15
    d = Seq([1, -1])
    g0 = Seq([1, 1])
    g1 = Seq([1, -1])

    b = Block.sen(d, l).truncate(l)
    s = [Cube.blank(l) for n in range(l)]

    g0_f = g0.f(l)
    g1_f = g1.f(l)

    for n in range(l):
        for k in range(l):
            s[n][k] = g0_f[:n+1] * g1_f[:k+1] * b
        print(f"completed {n}")

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())
    print()

    s_f0 = s_f[::2]
    s_f1 = s_f[1::2]

    print(s_f0)
    print(s_f1)
    print()

    # The first half identity
    print(s_f0.i())
    print(Sig(g0) + Sig(g1) + Sig(1).iter_add(2))
    print()

    # The second half identity
    print(s_f1)
    print((Seq([2, -1]) * (Sig(g0) + Sig(g1) + Sig(1).iter_add(2)).f())[:l//2])
Ejemplo n.º 21
0
def seq_block_multi_signature_4D():
    l = 10

    d = Seq([1, 1])
    b = Block.power(d, l)

    g1 = Seq([1, 1])
    g2 = Seq([2, 1])
    g3 = Seq([1, 1])

    s = [Cube.blank(l) for n in range(l)]

    for n in range(l):
        for k in range(l):
            for t in range(l):
                s[n][k][t] = ((g1**n)*(g2**k)*b).f()

    s_f = signature_function(s)
    print(s_f)
    print(s_f.i())

    # The identity
    print(Sig(d) + Sig(g1) + Sig(g2) + Sig(1))
Ejemplo n.º 22
0
def g_prism_sen_test_4D():
    l = 25
    d = Seq([1, -1])
    g0 = Seq([2, -1])
    g1 = Seq([1, 1])

    s = g_prism(d, [g0, g1], l=l, block=Block.sen(d, l).truncate(l))
    s_f = signature_function(s)

    print(s_f)

    print(s_f[::2])
    print(s_f[::2].i())

    print(Sig(g0) + Sig(g1) + Sig(1).iter_add(2))

    s_f1 = s_f[1::2]

    print(s_f1)

    print((s_f1 / Seq([2, -1])).i())

    print(Seq([2, -1]) * (Sig(g0) + Sig(g1) + Sig(1).iter_add(2)).f())