p = 3 m = 1 F = GF(p) Rx. = PolynomialRing(F) f = x C_super = superelliptic(f, m) Rxy. = 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)