[seqfan] Re: Problems with checking the correctness of an elliptic net given in literature.

Thomas Scheuerle Thomas.Scheuerle at kabelbw.de
Sat Jul 20 19:32:42 CEST 2024


Thank you,

I had already some help from Michael Somos and the situation is now much clearer for me.
Thank you Michael !!

The first problem was that I used the wrong curve in PARI.
If we compare the curves:
 
? ellinit([0, 1, 1, -2, 0])
%17 = [0, 1, 1, -2, 0, 4, -4, 1, -3, 112, -856, 389, 1404928/389, Vecsmall([1]), [Vecsmall([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? ellinit([2, 0, -1, -1, 0])
%18 = [2, 0, -1, -1, 0, 4, -4, 1, -3, 112, -856, 389, 1404928/389, Vecsmall([1]), [Vecsmall([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]

We will notice that they share the conductor and invariants but the difference has an effect.
Essentially we get from both curves the same elliptic net, but with different spatial orientation.
(sign of coordinates) 

Here some code to generate the net up to sign of its integers: 

T(n,k) = { local(E,z1);local(E,z2);E=ellinit([0,1,1,-2,0]);z1=ellpointtoz(E,[0,0]);z2=ellpointtoz(E,[1,0]);round(ellsigma(E,n*z1+k*z2)/(ellsigma(E,z1)^(n^2-k*n)*ellsigma(E,z1+z2)^(k*n)*ellsigma(E,z2)^(k^2-k*n) )) }

net(size) = {my(si = max(0,size-5)); m = matconcat([matrix(5,5,m,k,T(m-1,k-1)),matrix(5,si);matrix(si,5),matrix(si,si)]);
for(k = 1, 5, for(n = 6, size, m[n, k] = ( m[n-1,k]*m[n-3,k]*m[3,1]^2 - m[2,1]*m[4,1]*m[n-2,k]^2)/m[n-4,k]));
for(k = 1, 5, for(n = 6, size, m[k, n] = ( m[k, n-1]*m[k, n-3]*m[1,3]^2 - m[1,2]*m[1,4]*m[k,n-2]^2)/m[k,n-4]));
for(k = 6, size, for(n = 6, size, m[n, k] = ( m[n-1,k]*m[n-3,k]*m[3,1]^2 - m[2,1]*m[4,1]*m[n-2,k]^2)/m[n-4,k]))};m

We may use the curve ellinit([2, 0, -1, -1, 0]) and then replace "matconcat([matrix(5,5,m,k,T(m-1,k-1))" with
"matconcat([matrix(5,5,m,k,T(m-1,-(k-1)))" to get again the same result. We simply switched the qadrant so to say.

Here some code copied from Michael which shows the point adding and multiplication in PARI.
> > > E=ellinit([0,1,1,-2,0]);
> > > P1=[0,0]; P2=[1,0];
> > >
> > > ellidentify(E);
> > > /* [["389a1",[0,1,1,-2,0],[[-1,1],[0,0]]],[1,0,-1,1]] */
> > > /* please refer to <https://www.lmfdb.org/EllipticCurve/Q/389/a/1> */
> > >
> > > {sd1(P) = sqrtint(denominator(P[1]))};
> > > {Pnm(n, m) = elladd(E, ellmul(E, P1, n), ellmul(E, P2, m))};
> > > N = 4;
> > > M = matrix(N, N, m, n, sd1(Pnm(n-1, m-1)) );

Here no signs as the sqrt will remove the sign information in this calculation.

I learned that the signs allow some degree of freedom.
In the script presented at the start of this mail,
the pattern of the signs is defined by the Weierstrass sigma function.
But it appears there are also reasons why it may be convenient to define the signs
of T(1,1), T(0,1), T(1,0), T(0,2), T(2,0) to be positive. 
In this case we can reproduce the array as presented by Stange.

I will add this array soon to OEIS.

kind regards

Thomas


More information about the SeqFan mailing list