| Bill Allombert on Mon, 27 Nov 2023 15:03:33 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: general educational question on elliptic curve isogenies and moving points around |
On Sun, Nov 26, 2023 at 05:32:03PM -0800, American Citizen wrote: > Using > > All results = 0 for using K[1] and trying the other 7 curves. > > for example ellisisom(K[1],K[2]) = 0 > > What am I doing wrong? Your curves are isogenous but not isomorphic. I suppose you want to do: E=ellinit(K[1]); S=ellisomat(E)[1]; vector(#K,i,apply(e->ellisisom(ellinit(e[1]),ellinit(K[i])),S)) %4 = [[[1,1/12,1/2,0],0,0,0,0,0,0,0],[0,[2,1/3,1,0],0,0,0,0,0,0],[0,0,[2,1/3,1,0],0,0,0,0,0],[0,0,0,[4,4/3,2,0],0,0,0,0],[0,0,0,0,[1,1/12,1/2,0],0,0,0],[0,0,0,0,0,[1,1/12,1/2,0],0,0],[0,0,0,0,0,0,[1,1/12,1/2,0],0],[0,0,0,0,0,0,0,[1,1/12,1/2,0]]] So you get the correspondance between ellisomat output and your list, with the variable change. Cheers, Bill. PS: I join a new version of ellisisom which fix a typo if j=0 or 1728.
ellisisom(E,F)=
{
my(u,r,s,t);
if (E.j!=F.j, return(0));
if (E.j==0,
if(!ispower(E.c6/F.c6,6,&u),return(0))
,E.j==1728,
if(!ispower(E.c4/F.c4,4,&u),return(0))
, if(!ispower(F.c4*E.c6/(F.c6*E.c4),2,&u),return(0)));
s = (u*F.a1-E.a1)/2;
r = (u^2*F.a2 + s*E.a1 - E.a2 + s^2)/3;
t = (u^3*F.a3 - r*E.a1 - E.a3)/2;
[u,r,s,t]
}