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)))
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
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()
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