diff --git a/as_covers/as_cover_class.sage b/as_covers/as_cover_class.sage index 0659b29..8117715 100644 --- a/as_covers/as_cover_class.sage +++ b/as_covers/as_cover_class.sage @@ -314,8 +314,9 @@ class as_cover: g = self.genus() return g - self.cartier_matrix().rank() - def cohomology_of_structure_sheaf_basis(self, threshold = 8): - holo_diffs = self.holomorphic_differentials_basis(threshold = threshold) + def cohomology_of_structure_sheaf_basis(self, holo_basis = 0, threshold = 8): + if holo_basis == 0: + holo_basis = self.holomorphic_differentials_basis(threshold = threshold) from itertools import product x_series = self.x_series y_series = self.y_series @@ -341,7 +342,7 @@ class as_cover: for j in range(0, m): for k in product(*pr): f = as_function(self, prod(z[i1]^(k[i1]) for i1 in range(n))/x^i*y^j) - f_products = [omega.serre_duality_pairing(f) for omega in holo_diffs] + f_products = [omega.serre_duality_pairing(f) for omega in holo_basis] if vector(f_products) not in S: S = S+V.subspace([V(f_products)]) result_fcts += [f] @@ -384,11 +385,15 @@ class as_cover: return a*omega + fct.diffn() raise ValueError("Unknown.") - def de_rham_basis(self, threshold = 30): + def de_rham_basis(self, holo_basis = 0, cohomology_basis = 0, threshold = 30): + if holo_basis == 0: + holo_basis = self.holomorphic_differentials_basis(threshold = threshold) + if cohomology_basis == 0: + cohomology_basis = self.cohomology_of_structure_sheaf_basis(holo_basis = holo_basis, threshold = threshold) result = [] - for omega in self.holomorphic_differentials_basis(threshold = threshold): + for omega in holo_basis: result += [as_cech(self, omega, as_function(self, 0))] - for f in self.cohomology_of_structure_sheaf_basis(threshold = threshold): + for f in cohomology_basis: omega = self.lift_to_de_rham(f, threshold = threshold) result += [as_cech(self, omega, f)] return result diff --git a/as_covers/group_action_matrices.sage b/as_covers/group_action_matrices.sage index 7fb6528..3aad125 100644 --- a/as_covers/group_action_matrices.sage +++ b/as_covers/group_action_matrices.sage @@ -27,7 +27,10 @@ def group_action_matrices_dR(AS, threshold=8): ei = n*[0] ei[i] = 1 generators += [ei] - basis = [AS.holomorphic_differentials_basis(threshold = threshold), AS.cohomology_of_structure_sheaf_basis(threshold = threshold), AS.de_rham_basis(threshold=threshold)] + 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) + basis = [holo_basis, str_basis, dr_basis] return group_action_matrices(basis[2], generators, basis = basis) def group_action_matrices_old(C_AS):