John Cremona on Sun, 11 Feb 2024 17:36:56 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: trying to use qflllgram on the height matrix of elliptic curve points sometimes gives odd results


I think that Bill's suggestion of using matsolve is the way to go.  I do something similar in eclib. In your context you have the ability to check afterwards that the solution is correct, in the sense that it gives an exact linear relation (modulo torsion) between the points.

As for the height matrix itself, a trick I have used is to add a small epsilon to the diagonal entries to make sure that the matrix is nonsingular and positive definite. Not very elegant but as above, you can check the result at the end.

John

On Sat, 10 Feb 2024, 21:47 Bill Allombert, <Bill.Allombert@math.u-bordeaux.fr> wrote:
On Sat, Feb 10, 2024 at 12:50:04PM -0800, American Citizen wrote:
> Hello everyone:
>
> I have a certain rank=4 Z2xZ6 curve, from an isogenous Z12 rank 4 curve
> discovered by Tom Fisher in 2008, which I am currently using to analyze
> certain points on the curve, but these points are compositions of the
> Mordell-Weil basis points which are known.
>
> The basic idea is this
>
> h = ellheightmatrix(E,[p[1], p[2], p[3], p[4], q]);
>
> mattranspose( qflllgram(h) )
>
> But sometimes the matrix does NOT come out right, and occasionally the gp
> pari program hangs up and then starts to add to the heap requesting
> gigabytes of ram stuck on apparently trying to do the qflllgram factoring.

Yes. As a rule one should be very careful when using qflllgram on inexact
matrices, because while mathematic garantee the height is a positive defined
quadratic form, it does not garantee that its Gram matrix approximated to
some accuracy is defined positive.

Running LLL on  non-defined positive matrices might go in a infinite
loop, because it finds larger and larger vectors whose norm is converging to 0.

> Questions:
>
> Is qflllgram(ellheightmatrix(e,pts)) the right way to discover the points
> composition of the unknown point q and the MW basis p1-4 ?

Probably not. Why not just use matsolve ?
If the result is not integral or incorrect, increase the precision.

M=ellheightmatrix(E,[p[1], p[2], p[3], p[4]]);
V=vector(4,i,ellheight(E,p[i],q));
matsolve(M,V)

Cheers,
Bill