\\ Examples of curves with specified torsion \\ These are basically 1-parameter families \\ This all comes from Kubert [1976] \\ Rather paranoid error-checking so that you can run long searches \\ without fear of crashing torserr = ellinit([0,0,1,-7,6]); egtate(b,c) = ellinit([1-c,-b,-b,0,0]); eg2tors(a,b) = { if(b==0 || a^2==4*b,return(torserr)); ellinit([0,a,0,b,0]); } eg3tors(a,b) = { if(b==0 || a^3==27*b,return(torserr)); ellinit([a,0,b,0,0]); } eg4tors(b) = { if(b==0 || b==-1/16,return(torserr)); egtate(b,0); } eg5tors(d) = { if(d==0,return(torserr)); egtate(d,d); } eg6tors(c) = { if(c==0 || c==-1 || c==-1/9,return(torserr)); egtate(c+c^2,c); } eg7tors(d) = { if(d==0 || d==1,return(torserr)); egtate(d^3-d^2,d^2-d); } eg8tors(d) = { if(d==0 || d==1 || d==1/2,return(torserr)); egtate((2*d-1)*(d-1),(2*d-1)*(d-1)/d); } eg9tors(f) = { local(c,d); if(f==0 || f==1,return(torserr)); d=f*(f-1)+1; c=f*d-f; egtate(c*d,c); } { eg10tors(f) = local(c,d); if(f==1/2 || f==0 || f==1,return(torserr)); d=f^2/(f-(f-1)^2); c=f*d-f; egtate(c*d,c); } { eg12tors(t)= local(m,f,c,d); if(t==1/2 || t==0 || t==1,return(torserr)); m=(3*t - 3*t^2 - 1)/(t-1); f=m/(1-t); d=m+t; c=f*(d-1); egtate(c*d,c); } eg2x2tors(a,b)= { if(a==0 || b==0 || a==b,return(torserr)); ellinit([0,a+b,0,a*b,0]); } eg2x4tors(a)= { if(a==0 || a==1/4 || a==-1/4,return(torserr)); egtate(a*a-1/16,0); } { eg2x6tors(a)= local(c); if(a==1 || a==-3 || a==3 || a==5 || a==9,return(torserr)); c=(10-2*a)/(a^2-9); egtate(c*(c+1),c); } { eg2x8tors(a)= local(d); if(a==-1/2 || a==0 || a==-1/4,return(torserr)); d=a*(8*a+2)/(8*a^2-1); egtate((2*d-1)*(d-1),(2*d-1)*(d-1)/d); }