Ejemplo n.º 1
0
def main():
    for q in [3, 5, 7, 9, 11, 13, 17, 19, 23, 25]:
        print('q=%d' % q)
        pgl = PGL2(q)
        action1 = PGLGroupAction(pgl)
        action = ActionOnTuple(action1, 2)
        representation = PermutationRepresentation(action)
        trace_calculations = PGL2CharacterProductsCalculator(pgl)
        decomposition_string = trace_calculations.get_decomposed_representation_string(representation)
        print(str(representation) + '=' + decomposition_string)

    measure_dictionary = get_measure_mapping()
    print("Done!")
Ejemplo n.º 2
0
number_of_triangular_elements = len(triangular_subset)

elements_generator = IterableElementsGenerator(triangular_subset)
projective_zero = pgl2.get_pf().zero()
action = StabilizedPGLGroupAction(pgl2, [projective_zero], elements_generator)
representation = PermutationRepresentation(action)
up_to_conjugation_elements = {}
for element in triangular_subset:
    conjugation_class = pgl2.get_conjugation_class(element)
    if conjugation_class not in up_to_conjugation_elements:
        up_to_conjugation_elements[conjugation_class] = 0
    up_to_conjugation_elements[conjugation_class] += 1
graph_labelling = UpToConjugationGraphLabelling(up_to_conjugation_elements, elements_generator)
graph_covering = GraphCovering(graph, representation)

action2 = PGLGroupAction(pgl2)
representation2 = TransitiveActionUnitaryStandardRepresentation(action2, pgl2.get_pf().infinity())
graph_labelling2 = UpToConjugationGraphLabelling(conjugation_classes, pgl2)
graph_covering2 = GraphCovering(graph, representation2)

matching_polynomials = {}
characteristic_polynomials = {}

for labelling, weight in graph_labelling.weighted_labellings(graph):
    adjacency = graph_covering.adjacency(labelling).astype(int)
    lifted_graph = from_numpy_matrix(adjacency, create_using=nx.MultiGraph, parallel_edges=True)
    polynomial = get_matching_polynomial(lifted_graph)
    matching_polynomials[list(labelling.values())[0]] = (polynomial, weight)

for labelling, weight in graph_labelling2.weighted_labellings(graph):
    polynomial = graph_covering2.get_polynomial(labelling)
def get_pgl2_unitary_standard_representation(pgl2):
    return TransitiveActionUnitaryStandardRepresentation(PGLGroupAction(pgl2), pgl2.get_pf().infinity())