|Bill Allombert on Fri, 14 Dec 2012 01:13:40 +0100|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|New ellinit interface|
Dear PARI developpers, As suggested previously, we just changed the ellinit interface to be more useful while preserving much backward compatibility. ellffinit is removed. Instead you can just use ellinit, the second argument being optional. The new ellinit has support for curve over Q, Qp, Fp, Fq and generic rings, and is able to store some useful quantities as there are made available. Examples of ellinit: E=ellinit([1,2,3,4,5]); \\ curve over Q E=ellinit([1,2,3,4,5]*Mod(1,7)); \\ curve over F_7 E=ellinit([1,2,3,4,5],7); \\ idem E=ellinit(ellinit([1,2,3,4,5]),7);\\ curve over Q reduced mod 7 a=ffgen(ffinit(7,5),'a); E=ellinit([0,0,0,a,3]); \\ curve over F_7^5 a=ffgen(ffinit(7,5),'a); E=ellinit([0,0,0,1,3], a); \\ idem E=ellinit([1,2,3,4,5],O(7^10)); \\ curve over Q_7 Examples of use over finite field: ? # timer = 1 (on) ? a=ffgen(ffinit(3,500),'a);E=ellinit([0,1,0,0,a]); time = 5 ms. ? ellcard(E) time = 3,357 ms. %2 = 36360291795869936842385267079543319118023385026001623040346035832580600191583895484198508262979388783308179702534403855758001603200468535710727566445658952982783686758048404742811051317402648777294892525540831627630919562961724470827066560 ? ellap(E) time = 0 ms. %3 = -5145671683455469567735135529096927202761915510200761292685708480836835567322302153950679048902911176971584675449456558 (ellap is instantaneous since E has stored the value of ellcard from the previous computation). Improvement for curves over Q: It is preferable to use ellperiods(E) instead of E.omega and E.eta because this will the current realprecision rather than the one when ellinit was run. The new system allow to compute E.omega without E.eta which is much slower. Also E will remember the output of ellglobalred and ellrootno, saving computation with subsequent commands. Please test ( this is git rev 80526111b) Cheers, Bill.