# Parametrization of the modular curve X0(N) for N from 2 to 37, # in Maple-readable format (though it should not be too difficult to # edit-copy-paste the data to other computer algebra systems). # # For each N, if the genus of X0(N) is 0, then we choose a t for which # Q( j(tau), j(N*tau) ) = Q( t ) # and then write j(tau) and j(N*tau) in terms of t. # For genus > 0, we take Q(t, R) where R = RootOf( ... ). # # If more N's are needed, let me know and I'll add more (more data can # also be found in the literature; the purpose of this file is to have # this data in machine-readable form). # # Mark van Hoeij, April 2012. P2 := [(t+256)^3/t^2, (t+16)^3/t]; P3 := [27*(t+9)^3*(t+1)/t^3, 27*(9*t+1)^3*(t+1)/t]; P4 := [16*(t^2-16*t+16)^3/(1-t)/t^4, 16*(t^2+14*t+1)^3/t/(1-t)^4]; # = P2[1] evaluated at 16*t^2/(1-t), 16*(1-t)^2/t P5 := [(t^2+250*t+3125)^3/t^5, (t^2+10*t+5)^3/t]; P6 := [t^3*(432+216*t+t^3)^3/(t+3)^6/(t+2)/(t-6)^3, (t+6)^3*(120+12*t-6*t^2+t^3)^3/(t-6)^2/(t+3)/(t+2)^6]; # = P2[1] evaluated at 4096*(t+3)^3/(t+2)/(t-6)^3, (t-6)*(t+2)^3/(t+3) P7 := [(t^2+13*t+49)*(t^2+245*t+2401)^3/t^7, (t^2+13*t+49)*(t^2+5*t+1)^3/t]; P8 := [4*(t^4+60*t^3+134*t^2+60*t+1)^3/(t-1)^8/(t+1)^2/t, 16*(16*t^4-16*t^2+1)^3/(t+1)/(t-1)/t^2]; # = P4[1] evaluated at -(t-1)^2/4/t, 1/t^2 P9 := [3*(t+2)^3*(t^3+78*t^2+84*t+80)^3/(t-1)^9/(t^2+t+1), 27*(9*t^3-8)^3/(t-1)/(t^2+t+1)*t^3]; # = P3[2] evaluated at 9*(t^2+t+1)/(t-1)^3, t^3-1 P10 := [(t^6+236*t^5+1440*t^4+1920*t^3+3840*t^2+256*t+256)^3/(t+1)^5/(t-4)^10/t^2, (t^6-4*t^5+16*t+16)^3/(t+1)^2/(t-4)/t^5]; # = P5[1] evaluated at (t+1)*(t-4)^2/t^2, 125/(t-4)/(t+1)^2*t R := RootOf(y^2-(t+6)*(t^3-2*t^2-76*t-212), y); c0 := 1/2*t^11-187/2*t^9-253*t^8+5720*t^7+28721*t^6-92092*t^5-837892*t^4-933856*t^3+4126320*t^2+9924800*t+4360000; c1 := 1/2*(t-1)*(t+5)*(t+4)*(t+2)*(t-10)*(t^2-2*t-44)*(t^2-20); P11 := [c0+c1*R, c0-c1*R]; P12 := [eval(P4[1],t=(3*t+1)*(1-t)^3/t^3/16), eval(P4[1],t=16*t/(3*t+1)^3/(1-t))]; # # = [(3*t^2+6*t-1)^3*(3*t^6+234*t^5+249*t^4+60*t^3-27*t^2-6*t-1)^3/(3*t+1)^4/(t-1)^12/(3*t-1)/(t+1)^3/t^3, # (3*t^2-1)^3*(243*t^6-243*t^4+9*t^2-1)^3/(t-1)/(t+1)/(3*t+1)^3/(3*t-1)^3/t^4]; P13 := [(t^2+5*t+13)*(t^4+247*t^3+3380*t^2+15379*t+28561)^3/t^13, (t^2+5*t+13)*(t^4+7*t^3+20*t^2+19*t+1)^3/t]; R := RootOf(y^2-t^4+14*t^3-19*t^2+14*t-1, y); c0 := 1/2*(t+1)*(t^2-9*t+1)/t; c1 := 1/2*(t-1)/t; P14 := evala([subs(t = c0 + c1*R, P7[2]), subs(t = c0 - c1*R, P7[2])]); R := RootOf(y^2 - (t^2+11*t-1)*(t^2-t-1), y); c0 := -1/2*(t^2+1)*(t^2+9*t-1)/t; c1 := 1/2*(t^2+4*t-1)/t; P15 := evala([subs(t = c0 + c1*R, P5[1]), subs(t = c0 - c1*R, P5[1])]); P16 := [eval(P4[1],t=(t-1)^4/(t+1)^4), eval(P4[1],t=1/t^4)]; # # = [2*(t^8+120*t^7+540*t^6+840*t^5+1094*t^4+840*t^3+540*t^2+120*t+1)^3/(t^2+1)/(t+1)^4/(t-1)^16/t, # 16*(16*t^8-16*t^4+1)^3/(t^4-1)/t^4]; R := RootOf(y^2-t^4-2*t^3+39*t^2+176*t+212, y); c0 := 1/2*t^17-119/2*t^15-119*t^14+2669*t^13+10404*t^12-45883*t^11-315418*t^10-70737/2*t^9+3559120*t^8 +16023299/2*t^7-6524957*t^6-49362577*t^5-62853488*t^4+9369397*t^3+84817522*t^2+64442028*t+12804056; c1 := 1/2*(t-2)*(t-7)*(t+4)*(t+3)*(t+2)*(t+1)*(t^2-4*t-14)*(t^2-13)*(t^2+2*t-1)*(t^3-19*t-34); P17 := [c0+c1*R, c0-c1*R]; P18 := [eval(P6[2],t=6*(t^3+6*t^2+4)/(t-2)^3), eval(P6[2],t=t^3-2)]; # # = [(t^9+234*t^7-6*t^6+756*t^5-936*t^4+2172*t^3-1512*t^2+936*t-8)^3*(t^3+6*t-2)^3/(t^2+2*t+4)/(t^2-t+1)^2/(t+1)^18/(t-2)^9/t, # (t^3+4)^3*(t^9-12*t^6+48*t^3+64)^3/(t^2-t+1)/(t+1)/(t^2+2*t+4)^2/(t-2)^2/t^18]; R := RootOf(y^2-(t+4)*(t^3-4*t^2-16*t-12), y); c0 := 1/2*t^19-57*t^17-95*t^16+5073/2*t^15+8208*t^14-97983/2*t^13-259521*t^12+222015*t^11+3467823*t^10+9356265/2*t^9 -15101352*t^8-50919012*t^7-27477135*t^6+95174952*t^5+179460624*t^4+98302656*t^3-25681920*t^2-45337600*t-12288000; c1 := 1/2*t*(t-5)*(t+3)*(t+2)*(t+1)*(t^2+5*t+5)*(t^2-4*t-16)*(t^2-t-11)*(t^2+2*t-4)*(t^2-t-4)*(t^2-2*t-23); P19 := [c0+c1*R, c0-c1*R]; R := RootOf(y^2-t^4-4*t^3-7*t^2-6*t-1, y); c0 := (t^2+t-1)/t; c1 := 1/t; P20 := evala([eval(P10[1], t=c0+c1*R), eval(P10[1], t=c0-c1*R)]); R := RootOf(y^2-t^4+6*t^3+17*t^2+6*t-1, y); c0 := 1/2*(t^4-6*t^3-3*t^2-6*t+1)/t; c1 := 1/2*(t^2-3*t+1)/t; P21 := evala([eval(P7[1], t=c0+c1*R), eval(P7[1], t=c0-c1*R)]); R := RootOf(y^2-(t^3+4*t^2+8*t+4)*(t^3+8*t^2+16*t+16), y); c0 := 1/2*(t^10+22*t^9+209*t^8+1144*t^7+4048*t^6+9746*t^5+16192*t^4+18304*t^3+13376*t^2+5632*t+1024)*t; c1 := 1/2*t*(t+1)*(t+2)*(t+4)*(t^2+6*t+4)*(t^2+3*t+4); S := c0 + c1*R; P22 := evala([eval(P2[1], t=S), eval(P2[1], t=4096*S/t^12)]); R := RootOf(y^2-(t^3+3*t^2+2*t+1)*(t^3-5*t^2-10*t-11), y); c0 := 1/2*t^23-23/2*t^22+161/2*t^21-1932*t^19+5681/2*t^18+23322*t^17-26542*t^16-196512*t^15-9568* t^14+989184*t^13+1344833*t^12-1441272*t^11-5812744*t^10-5501232*t^9+1916912*t^8+9891840*t^7 +10953152*t^6+5893888*t^5+777216*t^4-1106944*t^3-824320*t^2-258048*t-32768; c1 := 1/2*(t-1)*(t-2)*(t-4)*(t+2)*(t+1)*(t^2-4*t-14)*(t^2-6*t-4)*(t^3-4*t^2-4*t-2)*(t^4-6*t^2-8*t-4)*(t^3-4*t^2-8*t-8)*t; P23 := [c0+c1*R, c0-c1*R]; R := RootOf((3*t-1)*y^2-t^2-t, y); P24 := [subs(t=R, P12[1]), P12[2]]; P25 := [eval(P5[2],t=125*(t^4+5*t^3+15*t^2+25*t+25)/t^5), eval(P5[2],t=t*(t^4+5*t^3+15*t^2+25*t+25))]; # # = [(t^10+250*t^9+4375*t^8+35000*t^7+178125*t^6+631250*t^5+1640625*t^4+3125000*t^3+4296875*t^2+3906250*t+1953125)^3/(t^4+5*t^3+15*t^2+25*t+25)/t^25, # (t^10+10*t^9+55*t^8+200*t^7+525*t^6+1010*t^5+1425*t^4+1400*t^3+875*t^2+250*t+5)^3/(t^4+5*t^3+15*t^2+25*t+25)/t] R := RootOf(y^2 - (t^6+8*t^5+8*t^4+18*t^3+8*t^2+8*t+1), y); c0 := 1/2*(t-1)*(t^2+5*t+1)/t; c1 := 1/2/t; P26 := evala([eval(P13[1], t=c0+c1*R), eval(P13[1], t=c0-c1*R)]); R := RootOf(y^2 - (t+3)*(t^3-3*t^2-9*t-9), y); c0 := 1/6*t^3-3/2*t-2; c1 := t/6; P27 := evala([eval(P9[2], t=c0+c1*R), eval(P9[2], t=c0-c1*R)]); R := RootOf(y^2 - (t^6+10*t^4+25*t^2+28), y); c0 := (t-1)*(t^6+29*t^4+99*t^2+127)/(t+1)^7; c1 := 8*(t-1)*(t^2+3)/(t+1)^7; S1 := c0+c1*R; S2 := subs(t=-t, S1); P28 := evala([eval(P4[1], t=S1), eval(P4[1], t=S2)]); R := RootOf(y^2 - (t^6-4*t^5-12*t^4+2*t^3+8*t^2+8*t-7), y); c0 := 1/2*t^29-29/2*t^28+319/2*t^27-1421/2*t^26-290*t^25+13340*t^24-53679/2*t^23-189399/2*t^22+311199*t^21+426909*t^20-3427365/2*t^19- 3592085/2*t^18+5477317*t^17+7020697*t^16-18871083/2*t^15-37142939/2*t^14+4608071*t^13+27051635*t^12+19207947/2*t^11-38397537/2*t^10 -15897713*t^9+4854455*t^8+19103721/2*t^7+2357613/2*t^6-5229135/2*t^5-1754181/2*t^4+285012*t^3+140940*t^2-6075*t-3375; c1 := 1/2*(t-1)*(t-3)*(t+2)*(t+1)*(t^2-5*t+3)*(t^2-3*t-9)*(t^2-5*t-5)*(t^2-t-3)*(t^2+t-1)*(t^2-t-1)*(t^3-4*t^2-6*t-5)*(t^2-6*t+2) *(t^4-2*t^3-5*t^2-4*t-1)*t; P29 := [c0 + c1*R, c0 - c1*R]; R := RootOf(y^2 - (t^2-4*t-1)*(t^2-t-1)*(t^4-t^3+2*t^2+t+1), y); S := t^4-3*t^3-t-1+R; P30 := evala([subs(t = 2*S/(t-1)/(t+1)^3, P10[2]), subs(t = -S/2/t, P10[2])]); R := RootOf(y^2 - (t^3+4*t^2+3*t+1)*(t^3-17*t-27), y); c0 := t/2*(t^10-31*t^8-31*t^7+279*t^6+496*t^5-465*t^4-1395*t^3-744*t^2-62*t+32)*(t^20-62*t^18-62*t^17+1519*t^16+2914*t^15 -17267*t^14-50840*t^13+74431*t^12+391964*t^11+119225*t^10-1190462*t^9-1593183*t^8+440138*t^7+2297255*t^6+1537972*t^5 -101184*t^4-604872*t^3-314495*t^2-66464*t-4928); c1 := t/2*(t-1)*(t+3)*(t+2)*(t^2-t-1)*(t^2-4*t-1)*(t^2-8)*(t^2-t-8)*(t^2-3*t-8)*(t^2-5)*(t^2+2*t-1)*(t^2+3*t+1)* (t^3-3*t^2-3*t-1)*(t^4-16*t^2-20*t-1)*(t+1); P31 := [c0+c1*R, c0-c1*R]; R := RootOf(2*t*y^2 + t^2+1, y); P32 := [eval(P16[1], t=R), P16[2]]; R := RootOf(y^2 - (t^2+t+3)*(t^6+7*t^5+28*t^4+59*t^3+84*t^2+63*t+27), y); c0 := t/2*(t^10+11*t^9+66*t^8+253*t^7+693*t^6+1386*t^5+2079*t^4+2277*t^3+1782*t^2+891*t+243); c1 := t/2*(t^2+2*t+3)*(t^4+5*t^3+14*t^2+15*t+9); S := c0 + c1*R; P33 := [eval(P3[1], t = S/27), eval(P3[1], t = 27*S/t^12)]: R := RootOf(4*y^3+(t^2+4*t+7)*y^2+(6*t^2+6*t+4)*y+4*t*(1+t^2), y); # N=34 is the first that is not rational, elliptic, or hyper-elliptic. S1 := -(10*t^9-33*t^8+214*t^7-49*t^6+492*t^5-237*t^4+318*t^3-223*t^2+22*t-2)/t -R/2*(t^9-16*t^8+17*t^7+7*t^6+1103*t^5+475*t^4+907*t^3-267*t^2-172*t-7)/t -2*R^2*(t^7-20*t^6+34*t^5-21*t^4+301*t^3-6*t^2-32*t-1)/t; S2 := -t/2048*(t^14+38*t^13+473*t^12+1720*t^11-3727*t^10-5170*t^9+98609*t^8-178016*t^7-158789*t^6+1386466*t^5- 2824333*t^4+2881704*t^3-1490221*t^2+275498*t+23939)/(t-1) -R/4096*(3*t^14+109*t^13+1260*t^12+3706*t^11-12575*t^10+2955*t^9+241806*t^8-643060*t^7+311205*t^6+2278003*t^5 -6162976*t^4+7199194*t^3-4093161*t^2+842037*t+47878)/(t-1) -R^2/8192*(t^14+42*t^13+607*t^12+3060*t^11-1551*t^10-21914*t^9+137399*t^8-9832*t^7-1042133*t^6+3187926*t^5 -4169947*t^4+1618740*t^3+1815395*t^2-2107430*t+606021)/(t-1); P34 := evala([eval(P2[2], t=S1), eval(P2[2], t=S2)]): R := RootOf(y^2 - (t^2+t-1)*(t^6-5*t^5-9*t^3-5*t-1), y); c0 := 1/2*(t^6-5*t^5+5*t^3-5*t-1)/t; c1 := 1/2*(t^2-3*t-1)/t; P35 := [eval(P7[2], t=c0+c1*R), eval(P7[2], t=c0-c1*R)]; R := RootOf(y^2+t^3-1, y); S := (R - 1)/t; P36 := evala([eval(P18[1], t=-2*S/t), eval(P18[2], t=S)]); R := RootOf(y^2 - (t^6+14*t^5+35*t^4+48*t^3+35*t^2+14*t+1), y); c0 := 1/2*(t^38+111*t^37+5735*t^36+183372*t^35+4070518*t^34+66731757*t^33+839493407*t^32+8317265927*t^31+66131419272*t^30 +428160735157*t^29+2284094397370*t^28+10141854349015*t^27+37817937455677*t^26+119384337840577*t^25+321369497716872*t^24 +742413958994112*t^23+1479993441620981*t^22+2557518837768352*t^21+3844682647926228*t^20+5040446568786745*t^19 +5771102747209386*t^18+5772348707995318*t^17+5039052928059619*t^16+3830661226098476*t^15+2526431885027090*t^14 +1437737230666334*t^13+700668498928018*t^12+289466658760084*t^11+100014973703245*t^10+28384018942515*t^9+6457169560547*t^8 +1138631535508*t^7+148372738444*t^6+13304984549*t^5+730929635*t^4+19194157*t^3-13542*t^2-8570*t+1)/t: c1 := (t+1)/2*(t^2+11*t+1)*(t^12+39*t^11+623*t^10+5332*t^9+27007*t^8+85293*t^7+174954*t^6+241803*t^5+227140*t^4+141862*t^3 +54236*t^2+10029*t+1)*(t^2+3*t+1)*(t^4+7*t^3+9*t^2+7*t+1)*(t^14+43*t^13+747*t^12+6741*t^11+34232*t^10+102516*t^9 +196228*t^8+254142*t^7+227826*t^6+140552*t^5+57320*t^4+13993*t^3+1561*t^2+6*t+1)/t: S1 := c0 + c1*R: S2 := normal(subs(t=1/t,c0)) + normal(subs(t=1/t,c1)) * R/t^3: # = S1 evaluated at 1/t. P37 := [S2, S1];