fixed tests; changed reduce for forms
This commit is contained in:
parent
b902e3fdca
commit
81b0e4c907
@ -38,7 +38,7 @@ class as_cover:
|
||||
for j in range(n):
|
||||
####
|
||||
#
|
||||
power_series = Rzf(cover_template.fcts[j]).subs({zgen[i] : z_series[i] for i in range(j)} | {zgen[i] : 0 for i in range(j, n)} | {fgen[i] : list_of_power_series[i] for i in range(n)})
|
||||
power_series = Rzf(cover_template.fcts[j]).subs({zgen[i] : z_series[i] for i in range(j)} | {zgen[i] : 0 for i in range(j, n)} | {fgen[i] : list_of_power_series[i] for i in range(n)} | {xgen : x_series, ygen:y_series})
|
||||
####
|
||||
jump, correction, t_old, z = artin_schreier_transform(power_series, prec = prec)
|
||||
x_series = x_series(t = t_old)
|
||||
@ -74,7 +74,7 @@ class as_cover:
|
||||
self.dx = as_form(self, 1)
|
||||
self.one = as_function(self, 1)
|
||||
Rzf, zgen, fgen, xgen, ygen = cover_template.fct_field
|
||||
subs_fs = {zgen[i] : z[i]}| {fgen[i] : RxyzQ(list_of_fcts[i].function) for i in range(n)}|{xgen:x, ygen:y}
|
||||
subs_fs = {zgen[i] : z[i] for i in range(n)}| {fgen[i] : RxyzQ(list_of_fcts[i].function) for i in range(n)}|{xgen:x, ygen:y}
|
||||
self.rhs = [RxyzQ(cover_template.fcts[i].subs(subs_fs)) for i in range(n)]
|
||||
#####
|
||||
##### We compute now the differentials dz[i]
|
||||
@ -306,7 +306,7 @@ class as_cover:
|
||||
p = self.characteristic
|
||||
n = self.height
|
||||
F = self.base_ring
|
||||
rr_space = self.at_most_poles(threshold, threshold=int(sqrt(threshold))) #there are two thresholds, how to pick them? we picked sqrt randomly
|
||||
rr_space = self.at_most_poles(threshold, threshold=threshold) #there are two thresholds, how to pick them? we picked sqrt randomly
|
||||
list_of_fcts = [ff for ff in rr_space if ff.valuation(place)%p != 0]
|
||||
list_of_fcts2 = [len(str(ff)) for ff in list_of_fcts]
|
||||
i_min = list_of_fcts2.index(min(list_of_fcts2))
|
||||
@ -557,6 +557,7 @@ class as_cover:
|
||||
|
||||
def group_action_matrices_dR(AS, basis = 0, threshold=8):
|
||||
n = AS.height
|
||||
F = AS.base_ring
|
||||
if basis == 0:
|
||||
holo_basis = AS.holomorphic_differentials_basis(threshold = threshold)
|
||||
str_basis = AS.cohomology_of_structure_sheaf_basis(holo_basis = holo_basis, threshold = threshold)
|
||||
|
@ -68,8 +68,9 @@ class as_form:
|
||||
|
||||
def reduce(self):
|
||||
RxyzQ, Rxyz, x, y, z = self.curve.fct_field
|
||||
aux = as_reduction(self.curve, RxyzQ(self.form))
|
||||
return as_form(self.curve, aux)
|
||||
m = self.curve.quotient.exponent
|
||||
aux = as_reduction(self.curve, RxyzQ(y^m*self.form))
|
||||
return as_form(self.curve, aux/y^m)
|
||||
|
||||
def group_action(self, elt):
|
||||
C = self.curve
|
||||
@ -81,6 +82,7 @@ class as_form:
|
||||
def coordinates(self, basis = 0):
|
||||
"""Find coordinates of the given holomorphic form self in terms of the basis forms in a list holo."""
|
||||
self = self.reduce()
|
||||
print(self)
|
||||
C = self.curve
|
||||
if basis == 0:
|
||||
basis = C.holomorphic_differentials_basis()
|
||||
@ -90,6 +92,7 @@ class as_form:
|
||||
denom = LCM([denominator(omega.form) for omega in basis])
|
||||
basis = [denom*omega for omega in basis]
|
||||
self_with_no_denominator = denom*self
|
||||
print(denom, basis, self_with_no_denominator)
|
||||
return linear_representation_polynomials(Rxyz(self_with_no_denominator.form), [Rxyz(omega.form) for omega in basis])
|
||||
|
||||
def trace(self, super=True):
|
||||
|
@ -9,8 +9,8 @@ Rxy.<x, y> = PolynomialRing(GF(p), 2)
|
||||
fArS1 = superelliptic_function(C_super, y*x)
|
||||
fArS2 = superelliptic_function(C_super, y*x^2)
|
||||
fArS3 = superelliptic_function(C_super, y + x)
|
||||
AS1 = as_cover(C_super, [fArS1, fArS2, fArS3], prec=150)
|
||||
AS2 = as_cover(C_super, [fArS2, fArS3, fArS1], prec=150)
|
||||
AS1 = elementary_cover([fArS1, fArS2, fArS3], prec=150)
|
||||
AS2 = elementary_cover([fArS2, fArS3, fArS1], prec=150)
|
||||
print(AS1.genus() == AS2.genus())
|
||||
##################
|
||||
p = 5
|
||||
@ -21,6 +21,6 @@ C_super = superelliptic(f, m)
|
||||
Rxy.<x, y> = PolynomialRing(GF(p), 2)
|
||||
fArS1 = superelliptic_function(C_super, y*x)
|
||||
fArS2 = superelliptic_function(C_super, y*x^2)
|
||||
AS1 = as_cover(C_super, [fArS1, fArS2], prec=1000)
|
||||
AS1 = elementary_cover([fArS1, fArS2], prec=1000)
|
||||
omega = as_form(AS1, 1/y)
|
||||
print(omega.expansion_at_infty().valuation()==AS1.exponent_of_different())
|
@ -7,7 +7,7 @@ C_super = superelliptic(f, m)
|
||||
|
||||
f1 = C_super.x^2*C_super.y
|
||||
f2 = C_super.x^3
|
||||
AS = as_cover(C_super, [f1, f2], prec=1000)
|
||||
AS = elementary_cover([f1, f2], prec=1000)
|
||||
|
||||
A, B = AS.group_action_matrices_holo()
|
||||
n = A.dimensions()[0]
|
||||
|
Loading…
Reference in New Issue
Block a user