read AllData: interface(screenwidth = 190): # A RootOf of degree n represents n complex numbers, so if f contains such a RootOf then # it represents n elements of C(x). Here we replace each such f by its n values in C(x) # (we also replace f by 1/f, see the comment at the end of Section 4.2). # RatFuncs := [seq(allvalues(1/f, 'implicit'), f = count5Belyi[infinity,2,3])]: lprint("Up to Gal(Qbar/Q)-conjugacy we have", nops( count5Belyi[infinity,2,3] ), "elements in the (3,2,infinity)-count = 5 Belyi table, representing", nops(RatFuncs),"distinct elements of Qbar(x)"); # Wrapper around algcurves[monodromy] in case it needs more Digits to work properly. Monodromy := proc(F,y,x) local r; try algcurves[monodromy](args) catch: Digits := Digits + 10; if Digits = 40 then error "Try something else" fi; r := primpart(subs(x=1/`if`(Digits>40, 1-x, x), F), y); procname(r,y,x) end try end: ReadOff := proc(v,i) local j; for j in v do if j[1]=i then return j[2] fi od; [] end: g0g1 := proc(f) global x,y; local C; try C := Monodromy(numer(y-f),y,x)[3]; [ReadOff(C, 0), ReadOff(C, 1)] catch: Digits := 25; C := Monodromy(numer(y-1/f),y,x)[3]; [ReadOff(C, infinity), ReadOff(C, 1)] end try end: # Takes hours: for i to nops(RatFuncs) do Constellation[i] := g0g1( RatFuncs[i] ) od;