Bill Allombert on Tue, 04 Sep 2012 16:39:55 +0200


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

Re: New experimental GP interface for elliptic curves over finite fields


On Tue, Sep 04, 2012 at 09:17:12AM +0100, John Cremona wrote:
> On 3 September 2012 22:42, Bill Allombert
> <Bill.Allombert@math.u-bordeaux1.fr> wrote:
> > On Thu, Jul 26, 2012 at 08:33:37PM +0200, Bill Allombert wrote:
> >> On Thu, Jul 12, 2012 at 07:47:37PM +0200, Bill Allombert wrote:
> >> > On Thu, Jun 07, 2012 at 12:16:11PM +0200, Bill Allombert wrote:
> >> > > Dear PARI developers,
> >> > >
> >> > > I have added a new experimental interface for elliptic curves over finite
> >> > > fields.
> >> > > A new function ellffinit is provided to create curves over finite fields:
> >> > >
> >> > > Create a curves over F_7:
> >> > > ? E=ellffinit([1,3],7);
> >> > >
> >> > > Create a curves over F_101^3:
> >> > > ? a=ffgen(ffinit(101,3),'a);
> >> > > ? E=ellffinit([1,a^3],a);
> >> > >
> >> > > (for technical reasons, the characteristic must be >3. This will be fixed eventually.)
> >> >
> >> > I have just added support for ordinary curves over finite field of characteristic 2.
> >>
> >> I have added support for supersingular curves over finite field of characteristic 2,
> >> and corrected a lot of bugs.
> >
> > I have reimplemented the support for ordinary curves over finite field of characteristic 2
> > to use Harley algorithm. This is much faster now.
> >
> > ? a=ffgen(ffinit(2,1024),'a);ellffinit([1,0,0,0,a],a,1);
> > ? ##
> >   ***   last result computed in 11,482 ms.
> >
> > (I like the ellffinit interface less and less. Indeed, why wasting time computing
> > the group structure if you are looking for curves of prime order ?)
> 
> I would expect that users would not expect a constructor such as
> ellffinit to do any non-trivial work, either group order (except when
> the field is very small) or structure (ditto).  They mayjust want to e
> playing around with addition of points, say.  In the same way that one
> should be allowed to construct a number field without automatically
> computing class group & units.

Such users should use ellinit() instead. But the problem is that ellcard(ellinit())
does not work over non-prime fields (because ellcard/ellinit lacks the code to
guess the definition field).

So we could add definition field detection to ellinit() but then we need somehow to
store the result in the ellinit data structure. Hence ellffinit()...
But currently there is no much functions that take advantage of ellffinit, only
ellcard, ellgroup, ellgenerators, ellorder and elllog and only ellcard does not
require either the group structure or the factorization of the group exponent,
so it seemed useful to store the information.

Cheers,
Bill.