|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. Cheers, Bill.