def test_star(n=8):
    for nu in Partition.generate(n, even_parts=True):
        mu = Partition.transpose(nu)
        lu = Partition.transpose(tuple(2 * mu[i]
                                       for i in range(0, len(mu), 2)))
        assert mu == Partition.transpose(
            tuple(2 * lu[i] for i in range(0, len(lu), 2)))
Ejemplo n.º 2
0
 def _vertical_strips(cls, mu, lam):
     ans = []
     strips = cls._horizontal_strips(Partition.transpose(mu),
                                     Partition.transpose(lam))
     for nu, diff, corners in strips:
         nu = Partition.transpose(nu)
         diff = {(j, i) for (i, j) in diff}
         corners = [(j, i) for (i, j) in corners]
         ans.append((nu, diff, corners))
     return ans
def test_anti_representatives(n=8):
    for nu in Partition.generate(n, even_parts=True):
        mu = Partition.transpose(nu)
        lu = Partition.transpose(tuple(2 * mu[i]
                                       for i in range(0, len(mu), 2)))
        print(mu)
        print(lu)
        print()

        assert representative_m(lu) == anti_representative_n(mu)
def test_molecular_correspondence(n=8):
    for mu in Partition.generate(n, even_parts=True):
        mu = Partition.transpose(mu)
        mapping = construct_molecular_correspondence(mu)
        for v in mapping:
            w = mapping[v]
            assert irsk(v).transpose() == dual_irsk(w)
def get_molecules_n(n, verbose=False):
    ans = {}
    for mu in Partition.generate(n, even_parts=True):
        mu = Partition.transpose(mu)
        molecule = molecule_n(mu)
        ans[mu] = molecule
    return ans
def representative_m(mu):
    a = 0
    w = Permutation()
    for b in Partition.transpose(mu):
        for i in range(b // 2):
            w *= Permutation.transposition(a + i + 1, a + b - i)
        a += b
    return w
Ejemplo n.º 7
0
def test_symmetric(n=4):
    a = {(i, j) for i in range(1, n + 1) for j in range(1, i + 1)}
    for k in range(len(a)):
        for _subset in itertools.combinations(a, k):
            subset = set(_subset) | {(j, i) for (i, j) in _subset}
            dictionary = {}
            for (i, j) in subset:
                x = random.randint(1, 10)
                dictionary[(i, j)] = x
                dictionary[(j, i)] = x
            g = Partition.growth_diagram(dictionary, n, n)
            # Partition.print_growth_diagram(g)
            for i in range(n + 1):
                mu = Partition.transpose(g[i][i])
                sigma = sum([dictionary.get((j, j), 0) for j in range(i + 1)])
                emp = sum([abs(v % 2) for v in mu])
                assert emp == sigma
def print_molecular_correspondence(n=8):
    def wstr(w):
        return ' $\\barr{c}' + str(
            w) + ' \\\\ ' + w.oneline_repr() + ' \\earr$ '

    ans = []
    for n in range(2, n + 1, 2):
        for mu in Partition.generate(n, even_parts=True):
            s = []
            mu = Partition.transpose(mu)
            mapping = construct_molecular_correspondence(mu)
            i = 0
            for v in mapping:
                w = mapping[v]
                # w = w * Permutation.longest_element(n)
                t, _ = rsk(v)
                p, q = rsk(w, n)
                s += [
                    '\n&\n'.join(
                        [wstr(v),
                         t.tex(),
                         wstr(w),
                         dual_irsk(w).tex()])
                ]
                i += 1
                if i * t.max_row() >= 24:
                    s += [
                        '\n\\end{tabular} \\newpage \\begin{tabular}{ccccc}\nM & Tableau &  N & & \\\\ \\hline '
                    ]
                    i = 0
            s = '\n \\\\ \\\\ \n'.join(s)
            ans += [
                '\\begin{tabular}{ccccc}\nM & Tableau &   N & & \\\\ \\hline \\\\ \\\\ \n'
                + s + '\n\\end{tabular}'
            ]

    ans = '\n\n\\newpage\n\n'.join(ans + [''])
    with open(
            '/Users/emarberg/Dropbox/projects/affine-transitions/notes/eric_notes/examples.tex',
            'w') as f:
        f.write(ans)
        f.close()
Ejemplo n.º 9
0
 def _rpp_vertical_strips(cls, mu, lam):  # noqa
     strips = cls._rpp_horizontal_strips(Partition.transpose(mu),
                                         Partition.transpose(lam))
     return [(Partition.transpose(nu), {(j, i)
                                        for i, j in diff})
             for nu, diff in strips]
def test_tilde_representatives(n=8):
    for nu in Partition.generate(n):
        w = tilde_representative_n(nu)
        v = anti_representative_m(Partition.transpose(nu))
        assert w == v