示例#1
0
 def __init__(self, mu, max_entry, multisetvalued=False, setvalued=True):
     assert not multisetvalued
     self.mu = mu
     self.max_entry = max_entry
     self.tableaux = list(
         Tableau.semistandard(max_entry, mu, setvalued=setvalued))
     self._edges = None
     self._components = None
     self.multisetvalued = multisetvalued
示例#2
0
def test_tableaux():
    # generate tableaux and reverse plane partitions
    from tableaux import Tableau
    mu = (4, 2, 1)

    a = Tableau.semistandard(3, mu)
    b = Tableau.semistandard_setvalued(3, mu)

    c = Tableau.semistandard_shifted(3, mu, diagonal_primes=True)
    d = Tableau.semistandard_shifted_setvalued(4, mu, diagonal_primes=False)

    e = Tableau.semistandard_rpp(3, mu)
    f = Tableau.semistandard_shifted_rpp(3, mu, diagonal_nonprimes=False)

    # serialize to change a Tableau into a dictionary
    s = [t.serialize() for t in c]
示例#3
0
def test_semistandard():
    mu = ()
    assert Tableau.semistandard(0, mu) == {Tableau()}
    assert Tableau.semistandard(1, mu) == {Tableau()}
    assert Tableau.semistandard(2, mu) == {Tableau()}

    mu = (1, )
    assert Tableau.semistandard(1, mu) == {Tableau({(1, 1): 1})}
    assert Tableau.semistandard(2, mu) == {
        Tableau({(1, 1): 1}),
        Tableau({(1, 1): 2}),
    }

    mu = (1, 1)
    assert Tableau.semistandard(2, mu) == {Tableau({(1, 1): 1, (2, 1): 2})}

    mu = (2, )
    assert Tableau.semistandard(2, mu) == {
        Tableau({
            (1, 1): 1,
            (1, 2): 1
        }),
        Tableau({
            (1, 1): 1,
            (1, 2): 2
        }),
        Tableau({
            (1, 1): 2,
            (1, 2): 2
        }),
    }

    mu = (1, )
    assert Tableau.semistandard(3, mu) == {
        Tableau({(1, 1): 1}),
        Tableau({(1, 1): 2}),
        Tableau({(1, 1): 3}),
    }
示例#4
0
def test_skew_semistandard():
    mu = ()
    nu = ()
    assert Tableau.semistandard(0, mu, nu) == {Tableau()}
    assert Tableau.semistandard(1, mu, nu) == {Tableau()}
    assert Tableau.semistandard(2, mu, nu) == {Tableau()}

    mu = (1, 1)
    nu = (1, )
    assert Tableau.semistandard(
        2, mu, nu) == {Tableau({(2, 1): 1}),
                       Tableau({(2, 1): 2})}

    mu = (2, )
    nu = (1, )
    assert Tableau.semistandard(2, mu, nu) == {
        Tableau({(1, 2): 1}),
        Tableau({(1, 2): 2}),
    }

    mu = (2, 1)
    nu = (1, )
    assert Tableau.semistandard(2, mu, nu) == {
        Tableau({
            (1, 2): 1,
            (2, 1): 1
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 2
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 1
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 2
        }),
    }

    mu = (2, 2)
    nu = (1, )
    assert Tableau.semistandard(3, mu, nu) == {
        Tableau({
            (1, 2): 1,
            (2, 1): 1,
            (2, 2): 2
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 2,
            (2, 2): 2
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 1,
            (2, 2): 3
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 2,
            (2, 2): 3
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 3,
            (2, 2): 3
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 1,
            (2, 2): 3
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 2,
            (2, 2): 3
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 3,
            (2, 2): 3
        }),
    }

    mu = (2, 2, 1)
    nu = (1, )
    assert Tableau.semistandard(3, mu, nu) == {
        Tableau({
            (1, 2): 1,
            (2, 1): 1,
            (2, 2): 2,
            (3, 1): 3
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 1,
            (2, 2): 2,
            (3, 1): 2
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 2,
            (2, 2): 2,
            (3, 1): 3
        }),
        #
        Tableau({
            (1, 2): 1,
            (2, 1): 1,
            (2, 2): 3,
            (3, 1): 3
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 1,
            (2, 2): 3,
            (3, 1): 2
        }),
        Tableau({
            (1, 2): 1,
            (2, 1): 2,
            (2, 2): 3,
            (3, 1): 3
        }),
        #
        Tableau({
            (1, 2): 2,
            (2, 1): 1,
            (2, 2): 3,
            (3, 1): 3
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 1,
            (2, 2): 3,
            (3, 1): 2
        }),
        Tableau({
            (1, 2): 2,
            (2, 1): 2,
            (2, 2): 3,
            (3, 1): 3
        }),
    }
示例#5
0
 def _slow_schur(cls, num_variables, mu, nu=()):
     return cls._slow_vectorize(num_variables,
                                Tableau.semistandard(num_variables, mu, nu))