44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
|
p = 3
|
||
|
m = 1
|
||
|
F = GF(p)
|
||
|
Rx.<x> = PolynomialRing(F)
|
||
|
f = x
|
||
|
C_super = superelliptic(f, m)
|
||
|
|
||
|
Rxy.<x, y> = PolynomialRing(F, 2)
|
||
|
f1 = superelliptic_function(C_super, x^7)
|
||
|
f2 = superelliptic_function(C_super, x^4)
|
||
|
AS = as_cover(C_super, [f1, f2], prec=1000)
|
||
|
print(AS.uniformizer())
|
||
|
|
||
|
def rep_jumps(AS, threshold = 30):
|
||
|
ile = 1
|
||
|
i = 1
|
||
|
result = []
|
||
|
flag = 0
|
||
|
while(flag == 0):
|
||
|
if len(AS.at_most_poles(i, threshold = threshold)) > ile:
|
||
|
ile = len(AS.at_most_poles(i, threshold = threshold))
|
||
|
result += [i]
|
||
|
if i%p != 0:
|
||
|
flag = 1
|
||
|
i+=1
|
||
|
return result
|
||
|
|
||
|
#print(rep_jumps(AS, threshold = 30))
|
||
|
|
||
|
def uniformizer(AS, threshold = 30):
|
||
|
p = AS.characteristic
|
||
|
n = AS.height
|
||
|
variable_names = 'x, y'
|
||
|
for i in range(n):
|
||
|
variable_names += ', z' + str(i)
|
||
|
Rxyz = PolynomialRing(F, n+2, variable_names)
|
||
|
x, y = Rxyz.gens()[:2]
|
||
|
z = Rxyz.gens()[2:]
|
||
|
zmag = AS.magical_element()[0]
|
||
|
v_x = as_function(AS, x).expansion_at_infty().valuation()
|
||
|
dprim = AS.exponent_of_different_prim()
|
||
|
d, a, b = xgcd(v_x, -dprim)
|
||
|
return as_function(AS, x^a*zmag.function^b)
|