Bill Allombert on Tue, 16 Oct 2012 22:38:37 +0200

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

New ellinit interface

Dear PARI developers,

Karim and I have been discussing about change to ellinit to make it more useful
and to replace ellffinit.

A summary:

1) the analytic constant ([e1,e2,e3],w1,w2,eta1,eta2,area) are not very useful
(basically only w1,w2 are somewhat useful) and computed at a fixed precision
which might not match the precision needed in any particular application.

2) Allowing a second argument to ellinit to specify the field (like ellffinit does)
seems a good idea. We can preserve backward compatibility by handling 0 and 1
specially (currently the second argument is a flag).

3) we could provide a separate function which compute 'extended' ellinit with the 
interesting invariants, depending on the basefield, which could then be used by other
functions. (For example the conductor and minimal model for curves over Q, the cardinal
for curves over finite field, etc.)

To start with something, I created a git branch 'bill-new_ellinit' which add support
for finite field to ellinit.

With this branch, you can do e.g.
? a=ffgen(ffinit(3,50),'a); E=ellinit([0,1,0,0,a^0]);ellcard(E)
%1 = 717897987693209835025932
? E=ellinit([1,3],nextprime(2^50));ellcard(E)
%2 = 1125899948887302

Outside the fact that the code is a bit ugly,
There are some deficiencies, though:
1) support for singular curves:
while ellinit did not allow singular curves, functions like ellap and ellgroup did.
This is useful to study the reduction of a curve over Z at prime of bad reduction.
This is not completly supported by ellffinit.

2) support for curves over F2/F3:
Due to a techicality, such curves are supported internally by FFELT and not by INTMOD.

3) ellffinit is still needed for elllog/ellorder to avoid refactoring the group exponent
every time.