corrected as_transform at non-totally ramified pts
This commit is contained in:
parent
7247bb3ddf
commit
7598e93642
as_covers
drafty
heisenberg_covers
quaternion_covers
@ -202,14 +202,21 @@ def artin_schreier_transform(power_series, prec = 10):
|
|||||||
power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M))
|
power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M))
|
||||||
jump = max(-(power_series.valuation()), 0)
|
jump = max(-(power_series.valuation()), 0)
|
||||||
try:
|
try:
|
||||||
T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m
|
if jump != 0:
|
||||||
|
T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m
|
||||||
except:
|
except:
|
||||||
print("no ", str(jump), "-th root; divide by", power_series.list()[0])
|
print("no ", str(jump), "-th root; divide by", power_series.list()[0])
|
||||||
return (jump, power_series.list()[0])
|
return (jump, power_series.list()[0])
|
||||||
T_rev = new_reverse(T, prec = prec)
|
if jump != 0:
|
||||||
t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec))
|
T_rev = new_reverse(T, prec = prec)
|
||||||
z = 1/t^(jump) + Rt(correction)(t = t_old)
|
t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec))
|
||||||
return(jump, correction, t_old, z)
|
z = 1/t^(jump) + Rt(correction)(t = t_old)
|
||||||
|
return(jump, correction, t_old, z)
|
||||||
|
if jump == 0:
|
||||||
|
aux = t^p - t
|
||||||
|
z = new_reverse(aux, prec = prec)
|
||||||
|
z = z(t = power_series)
|
||||||
|
return(0, correction, t, z)
|
||||||
|
|
||||||
|
|
||||||
def are_forms_linearly_dependent(set_of_forms):
|
def are_forms_linearly_dependent(set_of_forms):
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
p = 3
|
p = 3
|
||||||
F = GF(3)
|
F = GF(3^2, 'a')
|
||||||
Rx.<x> = PolynomialRing(F)
|
Rx.<x> = PolynomialRing(F)
|
||||||
P1 = superelliptic(x^2 + 1, 1)
|
P1 = superelliptic(x^2 + 1, 2)
|
||||||
fct1 = (P1.x)^2
|
fct1 = (P1.x)^2
|
||||||
fct2 = fct1 + (P1.x)/(P1.y - P1.x)
|
fct2 = fct1 + (P1.x)/(P1.y - P1.x)
|
||||||
fct3 = (P1.x)^4
|
fct3 = (P1.x)^4
|
||||||
C = heisenberg_cover(P1, [fct1, fct2, fct3], prec=300)
|
C = heisenberg_cover(P1, [1/2*fct1, fct2, fct3], prec=300)
|
||||||
print(C)
|
print(C)
|
||||||
a, b, c = heisenberg_group_action_matrices_holo(C)
|
a1, b1, c1 = heisenberg_group_action_matrices_holo(C)
|
@ -225,15 +225,21 @@ def artin_schreier_transform(power_series, prec = 10):
|
|||||||
power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M))
|
power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M))
|
||||||
jump = max(-(power_series.valuation()), 0)
|
jump = max(-(power_series.valuation()), 0)
|
||||||
try:
|
try:
|
||||||
T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m
|
if jump != 0:
|
||||||
|
T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m
|
||||||
except:
|
except:
|
||||||
print("no ", str(jump), "-th root; divide by", power_series.list()[0])
|
print("no ", str(jump), "-th root; divide by", power_series.list()[0])
|
||||||
return (jump, power_series.list()[0])
|
return (jump, power_series.list()[0])
|
||||||
T_rev = new_reverse(T, prec = prec)
|
if jump != 0:
|
||||||
t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec))
|
T_rev = new_reverse(T, prec = prec)
|
||||||
z = 1/t^(jump) + Rt(correction)(t = t_old)
|
t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec))
|
||||||
return(jump, correction, t_old, z)
|
z = 1/t^(jump) + Rt(correction)(t = t_old)
|
||||||
|
return(jump, correction, t_old, z)
|
||||||
|
if jump == 0:
|
||||||
|
aux = t^p - t
|
||||||
|
z = new_reverse(aux, prec = prec)
|
||||||
|
z = z(t = power_series)
|
||||||
|
return(0, correction, t, z)
|
||||||
|
|
||||||
def are_forms_linearly_dependent(set_of_forms):
|
def are_forms_linearly_dependent(set_of_forms):
|
||||||
from sage.rings.polynomial.toy_variety import is_linearly_dependent
|
from sage.rings.polynomial.toy_variety import is_linearly_dependent
|
||||||
|
@ -221,14 +221,21 @@ def artin_schreier_transform(power_series, prec = 10):
|
|||||||
power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M))
|
power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M))
|
||||||
jump = max(-(power_series.valuation()), 0)
|
jump = max(-(power_series.valuation()), 0)
|
||||||
try:
|
try:
|
||||||
T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m
|
if jump != 0:
|
||||||
|
T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m
|
||||||
except:
|
except:
|
||||||
print("no ", str(jump), "-th root; divide by", power_series.list()[0])
|
print("no ", str(jump), "-th root; divide by", power_series.list()[0])
|
||||||
return (jump, power_series.list()[0])
|
return (jump, power_series.list()[0])
|
||||||
T_rev = new_reverse(T, prec = prec)
|
if jump != 0:
|
||||||
t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec))
|
T_rev = new_reverse(T, prec = prec)
|
||||||
z = 1/t^(jump) + Rt(correction)(t = t_old)
|
t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec))
|
||||||
return(jump, correction, t_old, z)
|
z = 1/t^(jump) + Rt(correction)(t = t_old)
|
||||||
|
return(jump, correction, t_old, z)
|
||||||
|
if jump == 0:
|
||||||
|
aux = t^p - t
|
||||||
|
z = new_reverse(aux, prec = prec)
|
||||||
|
z = z(t = power_series)
|
||||||
|
return(0, correction, t, z)
|
||||||
|
|
||||||
|
|
||||||
def are_forms_linearly_dependent(set_of_forms):
|
def are_forms_linearly_dependent(set_of_forms):
|
||||||
|
Loading…
Reference in New Issue
Block a user