holo basis as an argument for computation of dr basis
This commit is contained in:
parent
49cc75320d
commit
d480dda08b
@ -314,8 +314,9 @@ class as_cover:
|
|||||||
g = self.genus()
|
g = self.genus()
|
||||||
return g - self.cartier_matrix().rank()
|
return g - self.cartier_matrix().rank()
|
||||||
|
|
||||||
def cohomology_of_structure_sheaf_basis(self, threshold = 8):
|
def cohomology_of_structure_sheaf_basis(self, holo_basis = 0, threshold = 8):
|
||||||
holo_diffs = self.holomorphic_differentials_basis(threshold = threshold)
|
if holo_basis == 0:
|
||||||
|
holo_basis = self.holomorphic_differentials_basis(threshold = threshold)
|
||||||
from itertools import product
|
from itertools import product
|
||||||
x_series = self.x_series
|
x_series = self.x_series
|
||||||
y_series = self.y_series
|
y_series = self.y_series
|
||||||
@ -341,7 +342,7 @@ class as_cover:
|
|||||||
for j in range(0, m):
|
for j in range(0, m):
|
||||||
for k in product(*pr):
|
for k in product(*pr):
|
||||||
f = as_function(self, prod(z[i1]^(k[i1]) for i1 in range(n))/x^i*y^j)
|
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:
|
if vector(f_products) not in S:
|
||||||
S = S+V.subspace([V(f_products)])
|
S = S+V.subspace([V(f_products)])
|
||||||
result_fcts += [f]
|
result_fcts += [f]
|
||||||
@ -384,11 +385,15 @@ class as_cover:
|
|||||||
return a*omega + fct.diffn()
|
return a*omega + fct.diffn()
|
||||||
raise ValueError("Unknown.")
|
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 = []
|
result = []
|
||||||
for omega in self.holomorphic_differentials_basis(threshold = threshold):
|
for omega in holo_basis:
|
||||||
result += [as_cech(self, omega, as_function(self, 0))]
|
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)
|
omega = self.lift_to_de_rham(f, threshold = threshold)
|
||||||
result += [as_cech(self, omega, f)]
|
result += [as_cech(self, omega, f)]
|
||||||
return result
|
return result
|
||||||
|
@ -27,7 +27,10 @@ def group_action_matrices_dR(AS, threshold=8):
|
|||||||
ei = n*[0]
|
ei = n*[0]
|
||||||
ei[i] = 1
|
ei[i] = 1
|
||||||
generators += [ei]
|
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)
|
return group_action_matrices(basis[2], generators, basis = basis)
|
||||||
|
|
||||||
def group_action_matrices_old(C_AS):
|
def group_action_matrices_old(C_AS):
|
||||||
|
Loading…
Reference in New Issue
Block a user