def group_action_matrices(F, space, list_of_group_elements, basis): n = len(list_of_group_elements) d = len(space) A = [matrix(F, d, d) for i in range(n)] for i, g in enumerate(list_of_group_elements): for j, omega in enumerate(space): omega1 = omega.group_action(g) v1 = omega1.coordinates(basis = basis) A[i][:, j] = vector(v1) return A def group_action_matrices_holo(AS, basis=0, threshold=10): n = AS.height generators = [] for i in range(n): ei = n*[0] ei[i] = 1 generators += [ei] if basis == 0: basis = AS.holomorphic_differentials_basis(threshold=threshold) F = AS.base_ring return group_action_matrices(F, basis, generators, basis = basis) def group_action_matrices_dR(AS, threshold=8): n = AS.height generators = [] for i in range(n): ei = n*[0] ei[i] = 1 generators += [ei] holo_basis = AS.holomorphic_differentials_basis(threshold = threshold) str_basis = AS.cohomology_of_structure_sheaf_basis(holo_basis = holo_basis, threshold = threshold) dr_basis = AS.de_rham_basis(holo_basis = holo_basis, cohomology_basis = str_basis, threshold=threshold) F = AS.base_ring basis = [holo_basis, str_basis, dr_basis] return group_action_matrices(F, basis[2], generators, basis = basis) def group_action_matrices_log(AS): n = AS.height generators = [] for i in range(n): ei = n*[0] ei[i] = 1 generators += [ei] F = AS.base_ring return group_action_matrices(F, AS.at_most_poles_forms(1), generators, basis = AS.at_most_poles_forms(1))