#read "/texts/papers/sextics/equations/Maple/discrim.txt"; read "/texts/papers/sextics/equations/Maple/sextics.txt";
#######################################################################
implicit := p -> simplify(evala(resultant(x*op(3, p) - op(1, p), y*op(3, p) - op(2, p), t))):
#######################################################################
sset[1] := A_19:
alias(epsilon1[1] = RootOf(_Z^2-5, index=1)):
alias(epsilon2[1] = RootOf(_Z^2-5, index=2)):
f[1] := y^4+(-2*x^2+(-1/4*e+7/4)*x-1/16*e-7/16)*y^3
 +(x^4+(1/2*e-7/2)*x^3+(9/16*e+51/16)*x^2+(-3/8*e-7/8)*x-5/32*e+1/32)*y^2
 +((-1/4*e+7/4)*x^5+(-15/16*e-81/16)*x^4+(1/2*e+3/2)*x^3
  +(-1/16*e-3/16)*x^2+(-1/2*e-3/4)*x+3/32*e+5/32)*y
 +(7/16*e+37/16)*x^6+(-1/8*e-5/8)*x^5+(7/32*e+5/32)*x^4
  +(1/2*e+3/4)*x^3+(-1/16*e-1/16)*x^2+(1/32*e+1/8)*x+1/16*e+11/64:
f1[1] := subs(e=epsilon1[1], f[1]):
f2[1] := subs(e=epsilon2[1], f[1]):

#######################################################################
sset[2] := A_18+A_1:
alias(epsilon[2] = RootOf(576*_Z^3+1520*_Z^2+700*_Z+125, index=2)):
param[2] := [
 (24/5*epsilon[2]^2+91/15*epsilon[2]+1/6)*t^5 + t^4*epsilon[2] + t^3 + t^2,
 (816/25*epsilon[2]^2+52/3*epsilon[2]+10/3)*t^6
  + (-384/25*epsilon[2]^2-16/3*epsilon[2]-4/3)*t^5
  + (448/25*epsilon[2]^2+77/5*epsilon[2]+2)*t^4
  + (144/25*epsilon[2]^2+10*epsilon[2]+1)*t^3
  + (-48/25*epsilon[2]^2-1/15*epsilon[2]+4/3)*t^2 + 2*t + 1,
 (48/25*epsilon[2]^2+31/15*epsilon[2]-1/3)*t^6 + t^4]:
f[2] := implicit(param[2]):

#######################################################################
sset[4] := A_16+A_3:
alias(epsilon1[4] = RootOf(16*_Z^2-59*_Z+52, index=1)):
alias(epsilon2[4] = RootOf(16*_Z^2-59*_Z+52, index=2)):
f[4] := y^4+(-2*x^2+(61/16*e-11/4)*x+8153/4096*e-4479/1024)*y^3
 +(x^4+(-35/4*e+10)*x^3+(25191/4096*e-5697/1024)*x^2+(283749/524288*e-374291/131072)*x-e+2)*y^2
 +((79/16*e-29/4)*x^5+(-43197/4096*e+15867/1024)*x^4+(7144365/1048576*e-2629003/262144)*x^3
  +(-567357439/268435456*e+208814825/67108864)*x^2)*y
 +(533/512*e-195/128)*x^6+(-66993/65536*e+24551/16384)*x^5
 +(15872029/33554432*e-5819291/8388608)*x^4:
f1[4] := subs(e=epsilon1[4], f[4]):
f2[4] := subs(e=epsilon2[4], f[4]):

#######################################################################
sset[5] := A_16+A_2+A_1:
alias(epsilon[5] = RootOf(311*_Z^3-293*_Z^2+85*_Z-7, index=1)):
param[5] := [
 t^2 + t^3 + (-317*epsilon[5]^2+221*epsilon[5]-24)/56*t^4,
 1 + (2-epsilon[5])*t + (-398431*epsilon[5]^2+312615*epsilon[5]-58304)/3624*t^2
  + 256*(-58843*epsilon[5]^2+46797*epsilon[5]-9236)/140883*t^3,
 t^4 + epsilon[5]*t^5 + (13*epsilon[5]^2-5*epsilon[5])/8*t^6]:
f[5] := implicit(param[5]):

#######################################################################
sset[6] := A_15+A_4:
skip[6] := true:  ## non-real curve
f[6] := y^4+(-2*x^2-(2002/145+186/145*I)*x+316/5-312/5*I)*y^3
 +(x^4+(4598/145-66/29*I)*x^3+(-699084/4205+720414/4205*I)*x^2-(4+1332/5*I)*x-8-42/5*I)*y^2
 +((-2596/145+516/145*I)*x^5+(341862/4205-74970/841*I)*x^4
  +(-116576/24389+14155488/121945*I)*x^3-(2992/29+13872/145*I)*x^2)*y
 +(422338/21025-624354/21025*I)*x^6+(20023696/609725+180597132/609725*I)*x^5
  -(233585984/707281+955281408/3536405*I)*x^4:

#######################################################################
sset[7] := A_14+A_4+A_1:
skip[7] := true:  ## non-real curve
alias(epsilon[7] = RootOf(9*_Z^6-27*_Z^5-45*_Z^4+195*_Z^3-20*_Z^2-372*_Z+276)):
f[7] := y^4+(-2*x^2+(168/55*epsilon[7]^5-72/11*epsilon[7]^4-90/11*epsilon[7]^3+212/11*epsilon[7]^2+166/33*epsilon[7]-604/55)*x
  -636/25*epsilon[7]^5-761/5*epsilon[7]^2+1414/3*epsilon[7]+657/5*epsilon[7]^4-852/5*epsilon[7]^3-6572/25)*y^3
 +(x^4+(-252/55*epsilon[7]^5+606/55*epsilon[7]^4+378/55*epsilon[7]^3-1326/55*epsilon[7]^2-118/55*epsilon[7]+1816/165)*x^3
  +(202698/3025*epsilon[7]^5-212202/605*epsilon[7]^4+283608/605*epsilon[7]^3+21354/55*epsilon[7]^2-778462/605*epsilon[7]+2252816/3025)*x^2
  +(-1674/5*epsilon[7]^5+9054/5*epsilon[7]^4-13038/5*epsilon[7]^3-7974/5*epsilon[7]^2+31908/5*epsilon[7]-19084/5)*x
  -342/5*epsilon[7]^5+1886/5*epsilon[7]^4-2872/5*epsilon[7]^3-1211/5*epsilon[7]^2+6192/5*epsilon[7]-3828/5)*y^2
 +((84/55*epsilon[7]^5-246/55*epsilon[7]^4+72/55*epsilon[7]^3+266/55*epsilon[7]^2-476/165*epsilon[7]-4/165)*x^5
  +(-93908/3025*epsilon[7]^5+20271/121*epsilon[7]^4-144634/605*epsilon[7]^3-25771/165*epsilon[7]^2+3304592/5445*epsilon[7]-3310388/9075)*x^4
  +(199748/1331*epsilon[7]^5-5454564/6655*epsilon[7]^4+8005868/6655*epsilon[7]^3+13583132/19965*epsilon[7]^2-172685912/59895*epsilon[7]+34873768/19965)*x^3
  +(-4014/5*epsilon[7]^5+48538/11*epsilon[7]^4-73550/11*epsilon[7]^3-31356/11*epsilon[7]^2+158044/11*epsilon[7]-485688/55)*x^2)*y
 +(-23879/3025*epsilon[7]^5+5185/121*epsilon[7]^4-38917/605*epsilon[7]^3-4393/165*epsilon[7]^2+734636/5445*epsilon[7]-2246132/27225)*x^6
  +(2367472/6655*epsilon[7]^5-2573224/1331*epsilon[7]^4+3743632/1331*epsilon[7]^3+6570808/3993*epsilon[7]^2-81413236/11979*epsilon[7]+245146156/59895)*x^5
  +(-171558021/73205*epsilon[7]^5+943211199/73205*epsilon[7]^4-1430821093/73205*epsilon[7]^3-54857644/6655*epsilon[7]^2+9188546584/219615*epsilon[7]-16950921512/658845)*x^4:
J_list[7] := [epsilon[7], 6]:

#######################################################################
sset[10] := A_13+A_6:
skip[10] := true:  ## non-real curve
alias(epsilon[10] = RootOf(9*_Z^4-63*_Z^3+175*_Z^2-224*_Z+112)):
f[10] := y^4+(-2*x^2+(9/2*epsilon[10]^3-21/2*epsilon[10]^2-1/2*epsilon[10]+16)*x+15/2*epsilon[10]^2-23/2*epsilon[10]-27/14*epsilon[10]^3+6)*y^3
 +(x^4+(-27/4*epsilon[10]^3+63/4*epsilon[10]^2+1/4*epsilon[10]-43/2)*x^3+(351/28*epsilon[10]^3-261/4*epsilon[10]^2+441/4*epsilon[10]-117/2)*x^2
  +(-33/4*epsilon[10]^3+43*epsilon[10]^2-157/2*epsilon[10]+195/4)*x+14/9*epsilon[10]^2-1/4*epsilon[10]^3+47/36-47/18*epsilon[10])*y^2
 +((9/4*epsilon[10]^3-21/4*epsilon[10]^2+1/4*epsilon[10]+11/2)*x^5+(-387/56*epsilon[10]^3+327/8*epsilon[10]^2-603/8*epsilon[10]+93/2)*x^4
  +(-35/4*epsilon[10]^3+515/12*epsilon[10]^2-895/12*epsilon[10]+545/12)*x^3+(-7/16*epsilon[10]^3+373/144*epsilon[10]^2-701/144*epsilon[10]+109/36)*x^2)*y
 +(-15/14*epsilon[10]^3+99/16*epsilon[10]^2-185/16*epsilon[10]+117/16)*x^6
  +(-2*epsilon[10]^3+223/24*epsilon[10]^2-365/24*epsilon[10]+211/24)*x^5+(-3/32*epsilon[10]^3+163/288*epsilon[10]^2-317/288*epsilon[10]+13/18)*x^4:
J_list[10] := [epsilon[10], 4]:

#######################################################################
sset[11] := A_13+A_4+A_2:
alias(epsilon1[11] = RootOf(_Z^2-7*_Z+7, index=1)):
alias(epsilon2[11] = RootOf(_Z^2-7*_Z+7, index=2)):
f[11] := y^4+(-2*x^2+(37/7*e-29/7)*x+11784/245*e-14376/245)*y^3
 +(x^4+(-83/7*e+85/7)*x^3+(-27432/245*e+33588/245)*x^2
  +(-45960/343*e+55344/343)*x+2880/343*e-3456/343)*y^2
 +((46/7*e-8)*x^5+(27549/490*e-16623/245)*x^4+(28011/343*e-135519/1372)*x^3
  +(154512/2401*e-26676/343)*x^2)*y
 +(7899/980*e-4773/490)*x^6+(51531/686*e-124575/1372)*x^5
  +(4728285/38416*e-5715117/38416)*x^4:
f1[11] := subs(e=epsilon1[11], f[11]):
f2[11] := subs(e=epsilon2[11], f[11]):

#######################################################################
sset[12] := A_12+A_7:
skip[12] := true:  ## non-real curve
f[12] := y^4+((46/13-9/13*I)*x^2+(-4+84/13*I)*x+48608/28561-123456/28561*I)*y^3
 +((2035/676-207/169*I)*x^4+(-880/169+1605/169*I)*x^3
  +(54/169-3078/169*I)*x^2+(27680/2197+30240/2197*I)*x-7424/2197-8832/2197*I)*y^2
 +((-7901/4394-12624/2197*I)*x^5+(46380/2197+21015/2197*I)*x^4+(-328/13+1548/169*I)*x^3+(1264/169-48/169*I)*x^2)*y
 +(-31745/8788+9195/4394*I)*x^6+(116/169-1737/169*I)*x^5+(-263/169+366/169*I)*x^4:

#######################################################################
sset[13] := A_12+A_6+A_1:
alias(epsilon[13] = RootOf(441*_Z^3+315*_Z^2+79*_Z+7, index=2)):
f[13] := y^4+(-2*x^2+(-10360/9*epsilon[13]^2-5464/9*epsilon[13]-6376/81)*x
  -28*epsilon[13]^2-72*epsilon[13]-1066/63)*y^3
 +(x^4+(5936/3*epsilon[13]^2+3152/3*epsilon[13]+3728/27)*x^3
  +(-700168/243*epsilon[13]^2-381136/243*epsilon[13]-3253864/15309)*x^2
  +(-3808/81*epsilon[13]^2-12232/81*epsilon[13]-26392/729)*x
  -980/3*epsilon[13]^2-2087/81-184*epsilon[13])*y^2
 +((-7448/9*epsilon[13]^2-3992/9*epsilon[13]-4808/81)*x^5
  +(532012/243*epsilon[13]^2+2121688/1701*epsilon[13]+2699338/15309)*x^4
  +(-75739744/59049*epsilon[13]^2-340672336/413343*epsilon[13]-67846576/531441)*x^3
  +(-1843816/6561*epsilon[13]^2-7259824/45927*epsilon[13]-1305538/59049)*x^2)*y
 +(221776/729*epsilon[13]^2+123712/729*epsilon[13]+1082356/45927)*x^6
  +(-32133568/59049*epsilon[13]^2-135035128/413343*epsilon[13]-25605880/531441)*x^5
  +(-288948764/4782969*epsilon[13]^2-1136232968/33480783*epsilon[13]-204097751/43046721)*x^4:
J_list[13] := [epsilon[13], 3]:

#######################################################################
sset[14] := A_12+A_4+A_3:
f[14] := y^4+(-2548/45*x^2+2620/39*x+9885625/107653)*y^3
 +(1623076/2025*x^4-118384/27*x^3-82000/13*x^2-33781250/24843*x+1953125/124852)*y^2
 +(9488752/135*x^5+32335100/351*x^4+109225000/4563*x^3+6640625/1911*x^2)*y
 +1344560/3*x^6+1012585000/1521*x^5+22578125/117*x^4:

#######################################################################
sset[15] := A_12+A_4+A_2+A_1:
alias(epsilon[15] = RootOf(15*_Z^3-48*_Z^2+40*_Z-10, index=1)):
param[15] := [
 (-8/27*epsilon[15]^2+8/27*epsilon[15]+5/81)*t^4 + t^3 + t^2,
 (28/27*epsilon[15]^2-55/27*epsilon[15]+50/81)*t^6 + t^5*epsilon[15] + t^4,
 (-17/27*epsilon[15]^2+8/27*epsilon[15]+41/81)*t^2 + (-epsilon[15]+2)*t + 1]:
f[15] := implicit(param[15]):

#######################################################################
sset[16] := A_11+2*A_4:
alias(epsilon[16] = RootOf(_Z^2-2, index=1)):
f1[16] := y^4+(x^2+(176/5*epsilon[16]-266/5)*x-624/25*epsilon[16]+1673/25)*y^3
 +(1/4*x^4+(24*epsilon[16]-37)*x^3+(-37896/25*epsilon[16]+108771/50)*x^2
  +(51208/25*epsilon[16]-73573/25)*x-48248/5*epsilon[16]+281301/20)*y^2
 +((16/5*epsilon[16]-26/5)*x^5+(-17712/25*epsilon[16]+25326/25)*x^4
  +(764832/25*epsilon[16]-1082148/25)*x^3+(-1027296/25*epsilon[16]+1461132/25)*x^2
  +(2290896/5*epsilon[16]-3240594/5)*x-2284848/5*epsilon[16]+3243726/5)*y
 +(-1728/25*epsilon[16]+2484/25)*x^6+(1029888/125*epsilon[16]-1456488/125)*x^5
  +(-6153408/25*epsilon[16]+8704044/25)*x^4+(6179328/25*epsilon[16]-8738928/25)*x^3
  +(-36687168/5*epsilon[16]+51888924/5)*x^2+(9268992/5*epsilon[16]-13108392/5)*x
  -54914112*epsilon[16]+77665716:
f2[16] := subs(epsilon[16]=-epsilon[16], f1[16]):

#######################################################################
sset[18] := A_10+A_9:
alias(epsilon1[18] = RootOf(_Z^2+11*_Z+19, index=1)):
alias(epsilon2[18] = RootOf(_Z^2+11*_Z+19, index=2)):
f[18] := y^4+((-3/22*e-29/22)*x^2+(35/22*e+1/22)*x-5*e-237/22)*y^3
 +((75/1936*e+335/968)*x^4+(283/968*e+749/242)*x^3
  +(-8667/1936*e-2457/484)*x^2+(-2325/968*e-4919/968)*x+5/44*e+43/176)*y^2
 +((-1253/21296*e-5387/10648)*x^5+(-6/11*e-153/44)*x^4+(-21/4*e-113/8)*x^3
  +(1/4*e+1/2)*x^2)*y
 +(1/44*e+51/176)*x^6+(-9/4*e-4)*x^5+(1/4*e+5/4)*x^4:
f1[18] := subs(e=epsilon1[18], f[18]):
f2[18] := subs(e=epsilon2[18], f[18]):

#######################################################################
sset[19] := A_10+A_8+A_1:
alias(epsilon[19] = RootOf(_Z^3+17*_Z^2+51*_Z+43, index=2)):
f[19] := y^4+((54/11*epsilon[19]^2+828/11*epsilon[19]+1368/11)*x^2
  +(-262/33*epsilon[19]^2-4040/33*epsilon[19]-2390/11)*x+65938/891*epsilon[19]
  +118675/891+4261/891*epsilon[19]^2)*y^3
 +((162/11*epsilon[19]^2+26892/121*epsilon[19]+39447/121)*x^4
  +(-9996/121*epsilon[19]^2-151776/121*epsilon[19]-233652/121)*x^3
  +(167278/1089*epsilon[19]^2+2549852/1089*epsilon[19]+4052902/1089)*x^2
  +(-135448/1089*epsilon[19]^2-2071772/1089*epsilon[19]-3370324/1089)*x
  +133565/3267*epsilon[19]^2+2044138/3267*epsilon[19]+3339872/3267)*y^2
 +((38070/1331*epsilon[19]^2+579960/1331*epsilon[19]+916002/1331)*x^5
  +(-120423/1331*epsilon[19]^2-1845894/1331*epsilon[19]-3049025/1331)*x^4
  +(32680/363*epsilon[19]^2+1509256/1089*epsilon[19]+233968/99)*x^3
  +(-15124/363*epsilon[19]^2-696968/1089*epsilon[19]-1169206/1089)*x^2)*y
 +(1152/121*epsilon[19]^2+17712/121*epsilon[19]+29916/121)*x^6
  +(-3488/363*epsilon[19]^2-55012/363*epsilon[19]-35868/121)*x^5
  +(325/33*epsilon[19]^2+5018/33*epsilon[19]+2906/11)*x^4:
J_list[19] := [epsilon[19], 3]:

#######################################################################
sset[20] := A_10+A_7+A_2:
alias(epsilon1[20] = RootOf(11*_Z^2+12*_Z+3, index=1)):
alias(epsilon2[20] = RootOf(11*_Z^2+12*_Z+3, index=2)):
f[20] := y^4+((-231*e-164)*x^2+(964*e+676)*x-1018720/1331*e-715712/1331)*y^3
 +((4389*e+12343/4)*x^4+(-36113*e-25382)*x^3+(101502*e+784818/11)*x^2
  +(-13956576/121*e-9810272/121)*x+5574784/121*e+3918592/121)*y^2
 +((16654*e+23411/2)*x^5+(-92955*e-718734/11)*x^4+(1691724/11*e+1189136/11)*x^3
  +(-772624/11*e-543088/11)*x^2)*y
 +(29713/2*e+459485/44)*x^6+(-50211*e-35294)*x^5+(26770*e+18817)*x^4:
f1[20] := subs(e=epsilon1[20], f[20]):
f2[20] := subs(e=epsilon2[20], f[20]):

#######################################################################
sset[21] := A_10+A_6+A_3:
skip[21] := true:  ## non-real curve
alias(epsilon[21] = RootOf(_Z^2+7)):
f[21] := y^4+((1695/616*epsilon[21]+643/88)*x^2+(4420/33*epsilon[21]+19180/33)*x+4096/33*epsilon[21]-28672/33)*y^3
 +((1089885/108416*epsilon[21]+10559/108416)*x^4+(1836433/2541+1662385/847*epsilon[21])*x^3+(37145792/847*epsilon[21]+61946944/847)*x^2
  +(-249036800/7623*epsilon[21]-2303197184/7623)*x+914358272/6237-109051904/2079*epsilon[21])*y^2
 +((-1027528757/149072+7228106645/3130512*epsilon[21])*x^5+(2754946112/17787*epsilon[21]-294225088/2541)*x^4
  +(37738900480/14553*epsilon[21]+3698441216/2079)*x^3+(-218103808/81-486539264/1323*epsilon[21])*x^2)*y
 +(-419451757/4851*epsilon[21]+418532809/539)*x^6
  +(-1680525568/189*epsilon[21]+33403489024/1323)*x^5+(5040029696/1323*epsilon[21]+4795187200/3969)*x^4:

#######################################################################
sset[22] := A_10+A_6+A_2+A_1:
alias(epsilon[22] = RootOf(3*_Z^3+9*_Z^2+5*_Z+7, index=2)):
param[22] := [
 (-2/27*epsilon[22]^2+7/27*epsilon[22]+56/81)*t^4 + t^3 + t^2,
 (7/27*epsilon[22]^2-11/27*epsilon[22]-7/81)*t^6 + t^5*epsilon[22] + t^4,
 (-11/27*epsilon[22]^2-11/27*epsilon[22]+11/81)*t^2 + (-epsilon[22]+2)*t + 1]:
f[22] := implicit(param[22]):

#######################################################################
sset[23] := A_10+A_5+A_4:
alias(epsilon1[23] = RootOf(7*_Z^2+22*_Z-2, index=1)):
alias(epsilon2[23] = RootOf(7*_Z^2+22*_Z-2, index=2)):
f[23] := y^4+((1904/3+595/3*e)*x^2+(20482/5+931*e)*x-520625/132*e-291550/33)*y^3
 +((621061/6+192185/6*e)*x^4+(38155327/15+2363578/3*e)*x^3
  +(-6009531423/1100-385022883/220*e)*x^2+(3995425/6*e+23173465/12)*x
  -13038235/96-3287375/96*e)*y^2
 +((1984902864/5+122856790*e)*x^5+(-44924331172/165*e-725383892716/825)*x^4
  +(31917917731/150*e+250263024452/375)*x^3+(-82943000-49816375/2*e)*x^2)*y
 +(-41376305712/11*e-133678448176/11)*x^6+(35791529088/5*e+113349772424/5)*x^5
  +(-11742500000/3*e-38123312500/3)*x^4:
f1[23] := subs(e=epsilon1[23], f[23]):
f2[23] := subs(e=epsilon2[23], f[23]):

#######################################################################
sset[24] := A_10+2*A_4+A_1:
alias(epsilon[24] = RootOf(7*_Z^3+43*_Z^2+77*_Z+49, index=2)):
f[24] := y^4+((37309/178304*epsilon[24]^2+26111/44576*epsilon[24]-14311/25472)*x^2+1)*y^3
 +((-88525258533/1557823504384*epsilon[24]^2-19547591059/111273107456*epsilon[24]+3833989567/31792316416)*x^4
  +(-2611518593/13909138432*epsilon[24]^2-802416009/993509888*epsilon[24]-115885817/283859968)*x^3
  +(124037257/496754944*epsilon[24]^2+395561/8870624*epsilon[24]-18827545/10137856)*x^2
  +(458483/1108828*epsilon[24]^2+6312189/4435312*epsilon[24]+1441041/633616)*x
  -5464/39601*epsilon[24]^2-74496/277207*epsilon[24]-13295/158404)*y^2
 +((3195588747347967/30380673982496768*epsilon[24]^2
   +490287145164577/1085024070803456*epsilon[24]+152797699711529/620013754744832)*x^5
  +(122537326169765/542512035401728*epsilon[24]^2
   +54239062570643/38750859671552*epsilon[24]+25080232500109/11071674191872)*x^4
  +(-7704399837271/19375429835776*epsilon[24]^2
   -3086075117007/1383959273984*epsilon[24]-1382988778847/395416935424)*x^3
  +(280990228017/691979636992*epsilon[24]^2
   +59090447007/49427116928*epsilon[24]+20491288029/14122033408)*x^2
  +(-22854715/441313544*epsilon[24]^2-4857155/252179168*epsilon[24]+21181495/252179168)*x)*y
 +(-566739757458334863413/4739871232053215756288*epsilon[24]^2
   -6823914272055613507/10580069714404499456*epsilon[24]
   -72890565412789579675/96732065960269709312)*x^6
  +(3985340521419752219/21160139428808998912*epsilon[24]^2
   +3389724487695743913/3022877061258428416*epsilon[24]
   +329761923581611341/215919790089887744)*x^5
  +(4897016303132771/377859632657303552*epsilon[24]^2
   -27017672358973381/107959895044943872*epsilon[24]-10332281942217573/15422842149277696)*x^4
  +(1547244742317313/3855710537319424*epsilon[24]^2
   +129706927860283/137703947761408*epsilon[24]+61295661362303/78687970149376)*x^3
  +(-14738246306113/78687970149376*epsilon[24]^2
   -2400930361203/5620569296384*epsilon[24]-475931747445/1605876941824)*x^2:
J_list[24] := [epsilon[24], 3]:

#######################################################################
sset[25] := A_10+A_4+A_3+A_2:
f[25] := y^4+(-1/7*x^2-72579/3388*x+1397294028/512435)*y^3
 +(1/196*x^4+83109/23716*x^3-1305916911/2608760*x^2+8478820584/717409*x+1184481792/65219)*y^2
 +(-273/1936*x^5+2842749/146410*x^4-1586605293/2576816*x^3+129552696/14641*x^2)*y
 +521703/2342560*x^6-956281599/28344976*x^5+5554571841/5153632*x^4:

#######################################################################
sset[26] := A_10+A_4+2*A_2+A_1:
alias(epsilon1[26] = RootOf(_Z^2-5, index=1)):
alias(epsilon2[26] = RootOf(_Z^2-5, index=2)):
param[26] := [
 (3/2*e-25/6)*t^4 + t^3 + t^2,
 (5/6*e-5/6)*t^6 + t^5*e + t^4,
 (-11/6*e+11/6)*t^2 + (-e+2)*t + 1]:
f[26] := implicit(param[26]):
f1[26] := implicit(subs(e=epsilon1[26], param[26])):
f2[26] := implicit(subs(e=epsilon2[26], param[26])):

#######################################################################
#sset[27] := A_9+A_6+A_4:
#alias(epsilon[27] = RootOf(7*_Z^3+21*_Z^2+16*_Z-13, index=1)):
#f[27] := y^4+((1461824/118203*epsilon[27]^2+7023808/118203*epsilon[27]+4861504/118203)*x^2
#  +(-122080/3813*epsilon[27]^2-314720/3813*epsilon[27]-122280/1271)*x
#  -21616/615*epsilon[27]-8056/205-2016/205*epsilon[27]^2)*y^3
# +((99327641600/340779249*epsilon[27]^2+243761505280/340779249*epsilon[27]+304055879680/340779249)*x^4
#  +(-13299111040/10992879*epsilon[27]^2-57984490880/10992879*epsilon[27]-69208691840/10992879)*x^3
#  +(-19188704/118203*epsilon[27]^2-93269632/118203*epsilon[27]-141520048/118203)*x^2
#  +(397184/11439*epsilon[27]^2+488576/3813*epsilon[27]+200416/1271)*x
#  -3520/3321*epsilon[27]^2-10880/3321*epsilon[27]-12400/3321)*y^2
# +((-97345441587200/3521385573*epsilon[27]^2-719408032051200/8216566337*epsilon[27]
#   -2318484436787200/24649699011)*x^5
#  +(-24882698240/113593083*epsilon[27]^2+1485148610560/795151581*epsilon[27]
#   +1801241728000/265050527)*x^4
#  +(-1895920000/32978637*epsilon[27]^2-76972524800/230850459*epsilon[27]+25562326400/230850459)*x^3
#  +(-14468480/3191481*epsilon[27]^2-90296320/22340367*epsilon[27]+38919040/22340367)*x^2)*y
# +(-6569989270773760/2292422008023*epsilon[27]^2
#   -20488260544286720/2292422008023*epsilon[27]+1693765160837120/327488858289)*x^6
#  +(239211089177600/221847291099*epsilon[27]^2
#   -152725379456000/221847291099*epsilon[27]+16737662796800/221847291099)*x^5
#  +(-15060089600/523636407*epsilon[27]^2
#   -20048684800/523636407*epsilon[27]+12813260800/523636407)*x^4:
sset[27] := A_9+A_6+A_4:
alias(epsilon[27] = RootOf(57*_Z^3-3196*_Z^2+221*_Z-7, index=1)):
f[27] := y^4+((-71488/37765*epsilon[27]^2+29114368/113295*epsilon[27]-256192/16185)*x^2
  +(-908504/113295*epsilon[27]^2+137387864/339885*epsilon[27]-1774616/48555)*x
  -3496/7553*epsilon[27]^2+2410904/113295*epsilon[27]+1063288/16185)*y^3
 +((77703984128/13633165*epsilon[27]^2-7510651904/5842785*epsilon[27]+227505152/5842785)*x^4
  +(-12933947776/2152605*epsilon[27]^2-63030771584/6457815*epsilon[27]+375078656/922545)*x^3
  +(-27896832/37765*epsilon[27]^2+172695312/7553*epsilon[27]-7529904/5395)*x^2
  +(2362688/22659*epsilon[27]^2-402316256/67977*epsilon[27]+6227744/9711)*x
  -957232/113295*epsilon[27]+5472/37765*epsilon[27]^2+300208/16185)*y^2
 +((-1291810154184704/111012915*epsilon[27]^2+276706956775424/333038745*epsilon[27]-8591281836032/333038745)*x^5
  +(-808745183232/1947595*epsilon[27]^2-115421092864/1947595*epsilon[27]+3162643456/1947595)*x^4
  +(-3580103296/307515*epsilon[27]^2+58021363456/922545*epsilon[27]-2477778688/922545)*x^3
  +(1283968/5395*epsilon[27]^2-220127488/16185*epsilon[27]+14124544/16185)*x^2)*y
 +(-113917996542328832/703081795*epsilon[27]^2+4712810747760640/421849077*epsilon[27]-750594787303424/2109245385)*x^6
  +(-510923510687744/111012915*epsilon[27]^2+169884655560704/333038745*epsilon[27]-4434795072512/333038745)*x^5
  +(-148571136/1805*epsilon[27]^2-259999488/1805*epsilon[27]+8605184/1805)*x^4:
J_list[27] := [epsilon[27], 3]:

#######################################################################
sset[30] := A_8+A_7+A_4:
skip[30] := true:  ## non-real curve
f[30] := y^4+((1966/4995+3229/1665*I)*x^2-(934/555+1238/555*I)*x+726/185-104/555*I)*y^3
 +((-89972813/99800100+3174107/8316675*I)*x^4+(2624566/1663335-9630238/1663335*I)*x^3
  +(-175604/308025+9728966/924075*I)*x^2-(209666/34225+107962/34225*I)*x+124821/34225+3672/34225*I)*y^2
 +((295456349909/83083583250-81260812187/83083583250*I)*x^5+(-540008023/41028930+407759096/61543395*I)*x^4
  +(30763298/6331625-266726626/56984625*I)*x^3+(60967122/6331625+95254329/6331625*I)*x^2)*y
 -(18957786554864/2561743816875+7849012952123/2561743816875*I)*x^6
  +(16506409877/189758801250+226520022721/21084311250*I)*x^5+(-120421479563/14056207500+23558056107/1171350625*I)*x^4:

#######################################################################
sset[31] := A_8+A_6+A_4+A_1:
alias(epsilon[31] = RootOf(5*_Z^3-3495*_Z^2+8047*_Z-10925, index=1)):
f[31] := y^4+(10995719975/12545612828+(206210/88119549*epsilon[31]^2+2777926/88119549*epsilon[31]-6513650/88119549)*x^2
  +(-8038965/1069556854*epsilon[31]^2-3527268028/11230346967*epsilon[31]+4491270675/7486897978)*x
  -179785535/37636838484*epsilon[31]^2-2186603299/18818419242*epsilon[31])*y^3
 +((24353508629/35159700051*epsilon[31]^2-505560092368/316437300459*epsilon[31]+687589871950/316437300459)*x^4
  +(-1095417020222450/120984527875491*epsilon[31]^2+842641645287125/40328175958497*epsilon[31]-3436500857753125/120984527875491)*x^3
  +(-64569368357938121/15418805941465353*epsilon[31]^2+49591539256638499/5139601980488451*epsilon[31]-67639211203442600/5139601980488451)*x^2
  +(-3642336074569/25862780844922*epsilon[31]^2+2630108623463/12931390422461*epsilon[31]-6212909320525/25862780844922)*x
  -14513794137/1603492412385164*epsilon[31]^2-32516845353819/801746206192582*epsilon[31]+286132118320575/1603492412385164)*y^2
 +((-6492996907022460085/2533267869392934*epsilon[31]^2+37424819409749688151/6333169673482335*epsilon[31]-6787862782538738195/844422623130978)*x^5
  +(-20583538190394242005/23914882684721772*epsilon[31]^2+213553666758849091597/107616972081247974*epsilon[31]-580993693009672683725/215233944162495948)*x^4
  +(-441649933022498337617/2285864203281322707*epsilon[31]^2+5091259174763678257694/11429321016406613535*epsilon[31]-1385122312221509279245/2285864203281322707)*x^3
  +(-4492773285046212/5751301866871277*epsilon[31]^2+51838191846097386/28756509334356385*epsilon[31]-14106870468876030/5751301866871277)*x^2)*y
 +(-9561816751401874230821081/184025022258934035540*epsilon[31]^2+11022622425993408593722373/92012511129467017770*epsilon[31]-666403075778511602916245/4089444939087423012)*x^6
  +(-8943221863808894296081741/651471297935176971495*epsilon[31]^2+61857130565619779352504724/1954413893805530914485*epsilon[31]-16828846363786267744312645/390882778761106182897)*x^5
  +(-188712498082433934309332653/83026397636849776256085*epsilon[31]^2+87017212928788761618001324/16605279527369955251217*epsilon[31]-39456494202758606509140325/5535093175789985083739)*x^4:
J_list[31] := [epsilon[31], 3]:

#######################################################################
sset[34] := A_7+2*A_6:
alias(epsilon[34] = RootOf(49*_Z^4+245*_Z^3+357*_Z^2+56*_Z+22)):
f[34] := y^4+((-1/9-14/9*epsilon[34]^2-14/9*epsilon[34]-7/9*epsilon[34]^3)*x^2
  +(-602/99*epsilon[34]^2+89/81+322/297*epsilon[34]-2359/891*epsilon[34]^3)*x
  +427/108*epsilon[34]+371/162+77/36*epsilon[34]^2+119/324*epsilon[34]^3)*y^3
 +((-11/2*epsilon[34]^2-5/6*epsilon[34]-97/252-77/36*epsilon[34]^3)*x^4
  +(-7511/1782*epsilon[34]^3-1307/1134-5878/297*epsilon[34]^2-460/99*epsilon[34])*x^3
  +(14627/2904*epsilon[34]^2+1175/2079-22069/8712*epsilon[34]+154357/26136*epsilon[34]^3)*x^2
  +(-637/1944*epsilon[34]^3-343/648*epsilon[34]^2+91/72*epsilon[34]+455/972)*x
  +19355/46656*epsilon[34]^3+10493/15552+12397/5832*epsilon[34]^2+37625/11664*epsilon[34])*y^2
 +((3955/594*epsilon[34]^3+191/189+3265/198*epsilon[34]^2+443/198*epsilon[34])*x^5
  +(5921/6237+55987/30492*epsilon[34]+86525/39204*epsilon[34]^3+206837/13068*epsilon[34]^2)*x^4
  +(50707013/7762392*epsilon[34]^3+24270925/862488*epsilon[34]^2+641599/352836+9653245/2587464*epsilon[34])*x^3
  +(13517/128304*epsilon[34]^2+3479/128304*epsilon[34]+11/486+11123/128304*epsilon[34]^3)*x^2)*y
 +(-1826971/137214*epsilon[34]-713627/29403*epsilon[34]^3-1690177/261954-13460885/137214*epsilon[34]^2)*x^6
  +(196919/176418+72492749/1940598*epsilon[34]^3+756238/35937*epsilon[34]^2+1472864/323433*epsilon[34])*x^5
  +(-8192884/10673289*epsilon[34]^3-158628029/85386312*epsilon[34]^2-22937339/85386312*epsilon[34]-309409/2587464)*x^4:
J_list[34] := [epsilon[34], 4]:

#######################################################################
sset[35] := A_7+A_6+A_4+A_2:
alias(epsilon1[35] = RootOf(25*_Z^2-57*_Z-3, index=1)):
alias(epsilon2[35] = RootOf(25*_Z^2-57*_Z-3, index=2)):
f[35] := y^4
 +((-2096/36855*e-16/4095)*x^2+(1064792/4641*e+164672/13923)*x-15332575/546*e-1315297/910)*y^3
 +((1792/17769375+243136/124385625*e)*x^4+(-1246208128/140970375*e-7127168/15663375)*x^3
  +(1616108248/1183455+697760564/26299*e)*x^2+(-28379828/819-1654167700/2457*e)*x
  -2360846/273-45868675/273*e)*y^2
 +((-1628150272/67967859375-31633197568/67967859375*e)*x^5
  +(341154688/1521585+178963157632/41082795*e)*x^4
  +(-1313841345376/46560501-8508836838880/15520167*e)*x^3
  +(-158092264400/53703*e-2712319456/17901)*x^2)*y
 +(-46153511699456/415963299375*e-2375506509824/415963299375)*x^6
  +(57116410887488512/94285014525*e+36293375684608/1164012525)*x^5
  +(-4727931285666176/7123756653-30619523458081600/2374585551*e)*x^4:
f1[35] := subs(e=epsilon1[35], f[35]):
f2[35] := subs(e=epsilon2[35], f[35]):

#######################################################################
sset[36] := A_7+2*A_4+2*A_2:
alias(omega = RootOf(_Z^2-_Z+1)):
param[36] := [
 t*omega*(-2*t^2 + 2*t*omega + 1-omega)*(4*t^2 - 5*t + 2),
 (2*t^2 + t  + 1)*(2*t^2 - (2-omega)*t + 1-omega)^2,
 t^2*omega^2*(2*t^2 - 2*t + 1)]:
f[36] := implicit(param[36]):

#######################################################################
sset[38] := 2*A_6+A_4+A_2+A_1:
alias(epsilon1[38] = RootOf(_Z^2-21, index=1)):
alias(epsilon2[38] = RootOf(_Z^2-21, index=2)):
param[38] := [
 t^2 + t^3*(86/17+9/17*e) + t^4*(-989/578-401/578*e),
 1 + t*(47/17-2/17*e) + t^2*(53/289-373/289*e) + t^3*(-12791/9826-18219/9826*e)
  + t^4*(1020961/167042+30749/167042*e) + t^5*(72220/83521-23645/83521*e)
  + t^6*(4359665/48275138-3144015/48275138*e),
 t^4 + t^5 + (191/578+19/578*e)*t^6]:
f[38] := implicit(param[38]):
f1[38] := implicit(subs(e=epsilon1[38], param[38])):
f2[38] := implicit(subs(e=epsilon2[38], param[38])):

#######################################################################
sset[39] := A_6+A_5+2*A_4:
alias(epsilon1[39] = RootOf(7*_Z^2+462*_Z-841, index=1)):
alias(epsilon2[39] = RootOf(7*_Z^2+462*_Z-841, index=2)):
param[39] := [
 (237/46*e-2523/322)*t^6+(87/46+11/46*e)*t^5+(7/46+3/46*e)*t^4
  +(-1705/1334-21/1334*e)*t^3+(-7/841*e-462/841)*t^2,
 (-102125/69*e+1267387/483)*t^6+(7/69*e+1/69)*t^4+(-2552/69+1456/69*e)*t^5,
 (26766461/161*e-332142858/1127)*t^6+(2578167/161*e-4569153/161)*t^5
  +(779250/161*e-1381763/161)*t^4+(10866/23*e-136242/161)*t^3
  +(787/23*e-10092/161)*t^2+(-87/23+81/23*e)*t+1]:
f[39] := implicit(param[39]):
f1[39] := implicit(subs(e=epsilon1[39], param[39])):
f2[39] := implicit(subs(e=epsilon2[39], param[39])):
## special processing for the J-invariant
J_list[39] := simplify(subs(y=1/y, x=x/y, f1[39])*y^6):
#alias(epsilon1[39] = RootOf(7*_Z^4+462*_Z^2-841, index=1)):
#alias(epsilon2[39] = RootOf(7*_Z^4+462*_Z^2-841, index=2)):
#param[39] := [
# (-3/46*e^2+39/46)*t^6 + (21/1334*e^3+1705/1334*e)*t^5
#      + (7/46+3/46*e^2)*t^4 + (-21/1334*e^3-1705/1334*e)*t^3 - t^2,
# (-2663/69+1507/69*e^2)*t^6+(1568/2001*e-616/2001*e^3)*t^5+(7/69*e^2+1/69)*t^4,
## (383/138-217/138*e^2)*t^6 + (8513/4002*e-5131/4002*e^3)*t^5
##     + (-1645/46+905/46*e^2)*t^4 + (175/174*e^3-485/174*e)*t^3
##     + (-455/69+265/69*e^2)*t^2+(-21/667*e^3+963/667*e)*t + 1,
# (41/23-12/23*e^2)*t^6 + (-21/667*e^3+963/667*e)*t^5
#      + (-59/23+24/23*e^2)*t^4 + (42/667*e^3-1926/667*e)*t^3
#      + (-12/23*e^2-5/23)*t^2 + (-21/667*e^3+963/667*e)*t + 1]:
#f[39] := implicit(param[39]):
#f1[39] := implicit(subs(e=epsilon1[39], param[39])):
#f1[39] := simplify(evala(f1[39]/coeff(f1[39], y^4))):
#f2[39] := implicit(subs(e=epsilon2[39], param[39])):
#f2[39] := simplify(evala(f2[39]/coeff(f2[39], y^4))):
## special processing for the J-invariant
#J_list[39] := simplify(evala(subs(y=1/y, x=x/y,
#                  subs(y=y+1+(440-301*epsilon1[39]^2)/69*x, f1[39]))*y^6)):

#######################################################################
# Torus type
#######################################################################
# nt145
sset[3] := A_17+A_2:
torus[3] := true:
skip[3] := true:  ## vertical cusp
f_2:=y^2-73/64*x^2+x:
f_3:=-91/64*x*y^2+y^2+827/512*x^3-41/16*x^2+x:
ff := simplify(subs(y=1/y, x=x/y, f_2^3+f_3^2)*y^6):
f[3] := collect(subs(x=1/x, y=(y+1)/x, ff)*x^6, [y, x]):

#######################################################################
# nt139
sset[8] := (A_14+A_2)+A_3:
torus[8] := true:
f_2 := 80*(-36*y^2+120*x*y-82*x^2+2*x):
f_3 := 100*(-1512*y^3+7794*y^2*x-18*y^2-11664*y*x^2+144*x*y+5313*x^3-194*x^2+x):
ff := simplify(subs(t=y, t^6*subs(x=x/t, y=1/t, f_2^3+f_3^2))):
f[8] := collect(simplify(subs(x=1/x, y=y/x, ff)*x^6), [y, x]):

#######################################################################
# nt142
sset[9] := (A_14+A_2)+A_2+A_1:
torus[9] := true:
f_2 := -45*y^2-240*y*x-106*x^2+90*x:
f_3 := 1025*y^3+6045*y^2*x-375*y^2+5490*y*x^2-4050*y*x+1354*x^3-2040*x^2+750*x:
ff := simplify(subs(t=y, t^6*subs(x=x/t, y=1/t, f_2^3+f_3^2))):
f[9] := collect(simplify(subs(x=1/x, y=y/x, ff)*x^6), [y, x]):

#######################################################################
# nt118
sset[17] := (A_11+2*A_2)+A_4:
torus[17] := true:
f_2 := (1/5)*(-3456*y^2+1200*y*x-3005*x^2+240*x):
f_3 := (1/5)*(-89856*y^3+130464*y^2*x-6912*y^2-112680*y*x^2+8640*y*x+91345*x^3-13320*x^2+480*x):
ff := simplify(subs(t=y, t^6*subs(x=x/t, y=1/t, f_2^3+f_3^2))):
f[17] := collect(simplify(subs(x=1/x, y=y/x, ff)*x^6), [y, x]):

#######################################################################
# nt128
sset[29] := (2*A_8)+A_3:
torus[29] := true:
f_2:=-3*y^2-6*x*y-x^2+6*x+3:
f_3:=1/16*(81*y^3+252*x*y^2+207*x^2*y-162*x*y-81*y+38*x^3-90*x-180*x^2):
ff := collect(simplify(f_2^3+f_3^2), [y, x]):
ff := collect(subs(y=y+1, ff), [y, x]):
f[29] := collect(simplify(subs(y=1/y, x=x/y, ff)*y^6), [y, x]):

#######################################################################
# nt104
sset[32] := (A_8+A_5+A_2)+A_4:
torus[32] := true:
skip[32] := true:  ## non-real curve
f_2:=(112+1566*I)*((15+15*I)*y^2+(27+39*I)*x*y-(27+39*I)*y-5*x^2-(17+39*I)*x+7+24*I):
f_3:=(43848/785+609953/1570*I)*((14148+6561*I)*y^3+(41895+27990*I)*x*y^2-(42597+29529*I)*y^2
 +(21546+25497*I)*x^2*y+(36828+42696*I)*y-(72522+74754*I)*x*y
 -3925*x^3-(12849+24093*I)*x^2+(25008+43956*I)*x-7532-18324*I):
ff := f_2^3+f_3^2:
ff := simplify(subs(y=1/y, x=x/y, ff)*y^6):
ff := simplify(subs(x=1/x, y=y/x, ff)*x^6):
f[32] := collect(ff, [y, x]):

#######################################################################
# nt83
sset[33] := (A_8+3*A_2)+A_4+A_1:
torus[33] := true:
f_2:=-565*y^2-14*y*x+176*y-5*x^2+104*x-16:
f_3:=13321*y^3+3135*y^2*x-6294*y^2+207*y*x^2-3516*y*x+1056*y+25*x^3-558*x^2+624*x-64:
ff := simplify(subs(t=y, t^6*subs(x=x/t, y=1/t, f_2^3+f_3^2))):
ff := collect(simplify(subs(x=1/x, y=y/x, ff)*x^6), [y, x]):
f[33] := collect(subs(x=x+1/9, ff), [y, x]):

#######################################################################
# Other special sextics
#######################################################################
sset[28] := A_9+2*A_4+A_2:
skip[28] := true:  ## vertical cusp
f[28] := y^4+(5/3*x^2-384/5)*y^3+(25/36*x^4+483*x^2)*y^2
 +(5165/6*x^4-72000*x^2)*y+675/2*x^6-224375/4*x^4+2304000*x^2:

#######################################################################
sset[37] := 3*A_6+A_1:
f[37] := y^4+(2/27*x^2-50/9*x-13/21)*y^3
 +(1/729*x^4-158/243*x^3+1562/189*x^2+703/189*x+1/9)*y^2
 +(-4/243*x^5-17/567*x^4-38/21*x^3-367/63*x^2-2/3*x)*y
 +1/567*x^6+1/63*x^5+10/63*x^4+5/7*x^3+x^2:

#######################################################################
# Batch processing
#######################################################################
do_set := proc(idx)
 local extra;
 lp("##=================================================================");
 lp("## The set of singularities:", idx=sset[idx]);
 if skip[idx] = true then lp("## Skipped"); return 0; fi;
 extra := 'sset'=sset[idx], 'torus'=evalb(torus[idx]=true);
 if degree(f1[idx], y) = 0 then
  fibers(f[idx], extra);
  return 1;
 else
  lp("##-----------------------------------------------------------------");
  fibers(f1[idx], extra);
  lp("##-----------------------------------------------------------------");
  fibers(f2[idx], extra);
  return 2;
 fi;
end:

do_all := proc()
 local idx, i, count;
 idx := sort([indices(sset, 'nolist')]);
 count := 0;
 for i from 1 to nops(idx) do count := count + do_set(op(i, idx)); od;
 lp("##=================================================================");
 lp("## Processed:", 'sets'=nops(idx), 'curves'=count);
end:

#######################################################################
#print(op(op(sset))):

J_set := proc(idx)
 lp("##=================================================================");
 lp("## The set of singularities:", idx=sset[idx]);
## special processing if any
 if degree(J_list[idx], y) > 0 then
  lp("## special processing");
  JJ(J_list[idx]);
  return;
 fi;
 if degree(f1[idx], y) = 0 then
  if nops(J_list[idx]) <= 1 then JJ(f[idx]); return; fi;
  JJ(f[idx], op(J_list[idx]));
  return;
 fi;
## these are always quadratic
 lp("##-----------------------------------------------------------------");
 JJ(f1[idx]);
 lp("##-----------------------------------------------------------------");
 JJ(f2[idx]);
end:

J_all := proc()
 local idx, i;
 idx := sort([indices(sset, 'nolist')]);
 for i from 1 to nops(idx) do J_set(op(i, idx)); od;
#  J_auto(op(i, idx), op(J_list[op(i, idx)]));
# od;
end:
