def test_bin_and_flipped_reordered(): ssyt_list = ssyt_triangle.get_ssyt_matrix(4) bin_tri_reordered = ssyt_triangle.get_bin3_tri_reordered() ssyt_omega_list = [ util.get_absolute_array(ssyt_triangle.flip_matrix_to_omega(m)) for m in ssyt_list ] bin_omega_list = [ util.get_absolute_array(binary_comb.get_omega_for_cliff(b)) for b in bin_tri_reordered ] count = 0 diff_count = 0 for s, b in zip(ssyt_omega_list, bin_omega_list): if not s == b: if not (s == comb_bin(b)): print("FAILED!!!!!!!!!!") print('>>>>>>>>>>> count=', count) print('binary') util.print_array(b) print('flipped ssyt x') util.print_array(s) diff_count += 1 print('*******combed binary') util.print_array(comb_bin(b)) count += 1 print('diff count ', diff_count)
def test_bin_and_flipped(size): ssyt_list = ssyt_triangle.get_ssyt_matrix(size + 1) bin_tri_list = binary_triangle.get_binary_triangle(size) bin_tri_list = [[row for row in reversed(tri)] for tri in bin_tri_list] ssyt_omega_list = [ util.get_absolute_array(ssyt_triangle.flip_matrix_to_omega(m)) for m in ssyt_list ] bin_omega_list = [ util.get_absolute_array(binary_comb.get_omega_for_cliff(b)) for b in bin_tri_list ] ssyt_map = dict() count = 0 for b in bin_omega_list: #print('processing', b) out = comb_bin(b) key = str(out) if not out in ssyt_omega_list: print('FAILED: no match for binary', b, 'with image', out) elif key in ssyt_map: ssyt_map[key] = ssyt_map[key] + [ b, ] print('DUPLICATE', out, 'mapped to by', ssyt_map[key]) else: ssyt_map[key] = [ b, ] for s in ssyt_omega_list: if str(s) not in ssyt_map: print('MISSING SSYT', s) print(len(ssyt_map)) for key in ssyt_map: if len(ssyt_map[key]) > 1 or not key == str(ssyt_map[key][0]): print('ssyt', key, 'binary', ssyt_map[key])
def write_bin_and_flipped_ssyt(): ssyt_list = get_ssyt_matrix(4) ssyt_omega_list = [ absolute_triangle(flip_matrix_to_omega(m)) for m in ssyt_list ] bin_omega_list = [ absolute_triangle(binary_comb.get_omega_for_cliff(b)) for b in bin_tri_reordered ] count = 0 diff_count = 0 for s,b in zip(ssyt_omega_list, bin_omega_list): if not s == b: print('>>>>>>>>>>> count=', count) print('binary') util.print_array(b) print('flipped ssyt') util.print_array(s) diff_count+=1 count+=1 print('diff count ', diff_count)
def write_bin_layers(bin_list, layer_list, suffix): sst_list = bss.build_stacks(len(bin_list[0])) lines = util.get_tex_header() num = -1 for bin_tri, layer_tri in zip(bin_list, layer_list): num += 1 if True: # need to invert this mapping! xinv = [[1 - a for a in row] for row in bin_tri] omega_before = binary_comb.get_omega_for_cliff(xinv) B, D = binary_comb.comb(xinv) omega = binary_comb.get_omega(B, D) print(layer_tri) size = len(layer_tri) binlayer_list = [ binary_for_layer(row, size) for row in layer_tri ] #binlayer_list = [ [row for row in reversed(tri)] for tri in binlayer_list] #### this implementation rotates the triangle!!!! print('binary:', bin_tri) for x in binlayer_list: print('\t', x) rot_bin_tri = util.rotate_triangle(bin_tri) rot_bin_tri = [row for row in reversed(rot_bin_tri)] # if rot_bin_tri in sst_list: if True: lines.append('\\subsubsection*{Triangle Number ' + str(num) + '}') lines.append('') lines.append('\\begin{tikzpicture}[scale=.5]') lines.append('\\node at (0,' + str(3 * size + 1) + ') {') lines.append(util.to_tex_ytableau([ row for row in reversed(rot_bin_tri)])) lines.append('};') lines.append('\\begin{scope}[shift={(0,' + str(3 * size/ 2) + ')}]') lines.append(util.omega_to_tangle(invert_bin_to_omega(rot_bin_tri))) lines.append('\\end{scope}') lines.append('\\begin{scope}[shift={(0,0)}]') lines.append(util.omega_to_tangle(invert_bin_to_combed_omega(rot_bin_tri))) lines.append('\\end{scope}') for count,bl in enumerate(binlayer_list): lines.append('\\node at (' + str( (count +1) * 3/2 * size ) + ',' + str(3 * size +1) + ') {') lines.append(util.to_tex_ytableau([row for row in reversed(bl)])) lines.append('};') lines.append('\\begin{scope}[shift={(' + str((count + 1) * 3/2 * size) + ',' + str(3 * size/ 2) + ')}]') lines.append(util.omega_to_tangle(invert_bin_to_omega(bl))) lines.append('\\end{scope}') lines.append('\\begin{scope}[shift={(' + str((count + 1) * 3/2 * size) + ',0)}]') lines.append(util.omega_to_tangle(invert_bin_to_combed_omega(bl))) lines.append('\\end{scope}') lines.append('\\end{tikzpicture}') lines.append('') lines.append('\medskip') lines = lines + util.get_tex_footer() file_name = '/Users/abeverid/PycharmProjects/asm/data/sst_layer_' + suffix + str(size) + '.tex' print('writing to', file_name) out_file = open(file_name, 'w') out_file.writelines(["%s\n" % item for item in lines])
def invert_bin_to_omega(bin_tri): new_bin = [[1-x for x in row] for row in bin_tri] omega = binary_comb.get_omega_for_cliff(new_bin) return omega
count = 0 for x, y in zip(bin_list, layer_list): #print('hi', x, y) # for xrow, yrow in zip(reversed(x),y): # # print("{:<15}".format(str(xrow)), "{:<15}".format(str(yrow))) # print('') #print(x) xinv = [[1-a for a in row] for row in x] omega_before = binary_comb.get_omega_for_cliff(xinv) B,D = binary_comb.comb(xinv) omega = binary_comb.get_omega(B,D) #if not binary_comb.is_magog(omega_before): xx = util.flip_triangle(x) if xx in sst_list: #not binary_comb.is_vless_gog(omega): count +=1 #print(x, omega, y) #print(x) for xrow, orow, yrow in zip(reversed(xx), omega, y):
def compare_to_binary(size): file_name = '/Users/abeverid/PycharmProjects/asm/data/ssyt/bin-ssyt' + str(size) + '.tex' out_file = open(file_name, 'w') lines = ['\\documentclass[12pt]{article}', '\\usepackage{amsmath}', '\\usepackage{ytableau}', '\\usepackage{tikz}', '\\begin{document}'] matrix_list = get_ssyt_matrix(size) #triangle_list = binary_triangle.get_binary_triangle_with_subset_order(size-1) triangle_list = bin_tri_reordered # bin_tri_list # matrix_list = [ # [[1, 1], [1, 0], [0, 0]], # [[1, 0], [1, 1], [0, 0]], # [[1, 0], [1, 0], [0, 1]], # [[1, 1], [0, 0], [1, 0]], # [[1, 0], [0, 1], [1, 0]], # [[1, 0], [0, 0], [1, 1]], # [[0, 0], [1, 1], [1, 0]], # [[0, 0], [1, 0], [1, 1]] # ] # # triangle_list = [ # [[0], [0, 0]], # [[0], [0, 1]], # [[0], [1, 0]], # [[1], [0, 0]], # [[0], [1, 1]], # [[1], [0, 1]], # [[1], [1, 0]], # [[1], [1, 1]] # ] count = -1 for t,m in zip(triangle_list, matrix_list): count = count+1 size = len(triangle_list[0]) t_B, t_D = binary_comb.comb(t) t_cliff_omega = binary_comb.get_omega_for_cliff(t) t_combed_omega = binary_comb.get_omega(t_B, t_D) m_B, m_D = matrix_to_BD(m) m_omega = binary_comb.get_omega(m_B,m_D) t_invert = [ [ 1 -x for x in row ] for row in reversed(t)] #print(t, t_invert) lines.append('\\begin{tikzpicture}[scale=.5]') lines.append('\\node at (0,' + str(size/2) + ') {') lines.append(util.to_tex_ytableau(t_invert)) lines.append('};') lines.append('\\begin{scope}[shift={(' + str(1 * size -1) + ',1)}]') lines.append(binary_comb.to_tangle2(t_cliff_omega)) lines.append('\\end{scope}') lines.append('\\begin{scope}[shift={(' + str(2.5*size -1) + ',1)}]') lines.append(binary_comb.to_tangle2(t_combed_omega)) lines.append('\\end{scope}') lines.append('\\node at (' + str(4 * size) + ',' + str(size/2) + ') {') lines.append(util.to_tex_ytableau(util.flip_triangle2(matrix_to_ssyt(m)))) lines.append('};') lines.append('\\node at (' + str(5.5 * size) + ',' + str(size/2) + ') {') lines.append(util.to_tex_ytableau(m)) lines.append('};') lines.append('\\begin{scope}[shift={( ' + str(6.5 * size) + ',0)}]') lines.append(binary_comb.to_tangle(m_omega)) lines.append('\\end{scope}') lines.append('\\node at (' + str(7.5 * size) + ',0) {' + str(count) + '};') lines.append('\\end{tikzpicture}') lines.append('') lines.append('\\end{document}') out_file.writelines(["%s\n" % item for item in lines])