Exemplo n.º 1
0
 def _slow_schur_p(cls, num_variables, mu, nu=()):
     return cls._slow_vectorize(
         num_variables,
         Tableau.semistandard_shifted_marked(num_variables,
                                             mu,
                                             nu,
                                             diagonal_primes=False))
Exemplo n.º 2
0
 def _slow_transposed_dual_stable_grothendieck_q(cls,
                                                 num_variables,
                                                 mu,
                                                 nu=()):
     p = 0
     for tab in Tableau.semistandard_shifted_marked(num_variables, mu, nu):
         m = 1
         for i in range(1, num_variables + 1):
             r = len({x for x, y, v in tab if v[0] == i})
             c = len({y for x, y, v in tab if v[0] == -i})
             a = len({(x, y) for x, y, v in tab if abs(v[0]) == i})
             x = Polynomial.x(i)
             m *= x**(r + c) * (x + 1)**(a - r - c)
         p += m
     dictionary = {}
     for e in p:
         tup = num_variables * [0]
         for i in e:
             tup[i - 1] = e[i]
         dictionary[tuple(tup)] = p[e]
     return SymmetricPolynomial({
         SymmetricMonomial(num_variables, alpha): coeff *
         (-BETA**-1)**(sum(alpha))
         for alpha, coeff in dictionary.items()
         if Partition.is_partition(alpha)
     }) * (-BETA)**(sum(mu) - sum(nu))
Exemplo n.º 3
0
def test_from_string(m=4):
    for n in range(m):
        for mu in Partition.generate(n, strict=True):
            for t in Tableau.semistandard_shifted_marked(n, mu):
                u = Tableau(str(t))
                if u != t:
                    print(t)
                    print(u)
                    print(t.boxes, u.boxes)
                    print()
                assert Tableau(str(t)) == t
Exemplo n.º 4
0
def test_semistandard_shifted_marked():
    mu = ()
    assert Tableau.semistandard_shifted_marked(0, mu) == {Tableau()}
    assert Tableau.semistandard_shifted_marked(1, mu) == {Tableau()}
    assert Tableau.semistandard_shifted_marked(2, mu) == {Tableau()}

    mu = (1, )

    assert Tableau.semistandard_shifted_marked(1, mu) == {
        Tableau({(1, 1): 1}),
        Tableau({(1, 1): -1}),
    }
    assert Tableau.semistandard_shifted_marked(1, mu,
                                               diagonal_primes=False) == {
                                                   Tableau({(1, 1): 1}),
                                               }

    assert Tableau.semistandard_shifted_marked(2, mu) == {
        Tableau({(1, 1): 1}),
        Tableau({(1, 1): -1}),
        Tableau({(1, 1): 2}),
        Tableau({(1, 1): -2}),
    }
    assert Tableau.semistandard_shifted_marked(2, mu,
                                               diagonal_primes=False) == {
                                                   Tableau({(1, 1): 1}),
                                                   Tableau({(1, 1): 2}),
                                               }

    mu = (3, 1)
    assert Tableau.semistandard_shifted_marked(1, mu) == set()
    assert Tableau.semistandard_shifted_marked(1, mu,
                                               diagonal_primes=False) == set()

    assert Tableau.semistandard_shifted_marked(2, mu) == {
        Tableau({
            (1, 1): 1,
            (2, 2): 2,
            (1, 2): 1,
            (1, 3): 1
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): 2,
            (1, 2): 1,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): 2,
            (1, 2): 1,
            (1, 3): -2
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): 2,
            (1, 2): -2,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): -2,
            (1, 2): 1,
            (1, 3): 1
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): -2,
            (1, 2): 1,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): -2,
            (1, 2): 1,
            (1, 3): -2
        }),
        Tableau({
            (1, 1): 1,
            (2, 2): -2,
            (1, 2): -2,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): 2,
            (1, 2): 1,
            (1, 3): 1
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): 2,
            (1, 2): 1,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): 2,
            (1, 2): 1,
            (1, 3): -2
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): 2,
            (1, 2): -2,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): -2,
            (1, 2): 1,
            (1, 3): 1
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): -2,
            (1, 2): 1,
            (1, 3): 2
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): -2,
            (1, 2): 1,
            (1, 3): -2
        }),
        Tableau({
            (1, 1): -1,
            (2, 2): -2,
            (1, 2): -2,
            (1, 3): 2
        }),
    }
    assert Tableau.semistandard_shifted_marked(2, mu,
                                               diagonal_primes=False) == {
                                                   Tableau({
                                                       (1, 1): 1,
                                                       (2, 2): 2,
                                                       (1, 2): 1,
                                                       (1, 3): 1
                                                   }),
                                                   Tableau({
                                                       (1, 1): 1,
                                                       (2, 2): 2,
                                                       (1, 2): 1,
                                                       (1, 3): 2
                                                   }),
                                                   Tableau({
                                                       (1, 1): 1,
                                                       (2, 2): 2,
                                                       (1, 2): 1,
                                                       (1, 3): -2
                                                   }),
                                                   Tableau({
                                                       (1, 1): 1,
                                                       (2, 2): 2,
                                                       (1, 2): -2,
                                                       (1, 3): 2
                                                   }),
                                               }

    mu = (3, 2)
    assert Tableau.semistandard_shifted_marked(1, mu) == set()
    assert Tableau.semistandard_shifted_marked(1, mu,
                                               diagonal_primes=False) == set()
Exemplo n.º 5
0
 def _slow_schur_q(cls, num_variables, mu, nu=()):
     return cls._slow_vectorize(
         num_variables,
         Tableau.semistandard_shifted_marked(num_variables, mu, nu))