John Cremona on Sat, 20 Oct 2012 17:19:32 +0200


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

Re: New ellinit interface


This sounds reasonable, and is (not surprisingly) very close to the
heierarchy of differen elliptic curve classes in Sage ("class" being
the python term).  Sage has another, below your t_ELL_Rg and above all
of t_ELL_{Q,Qp,...}, namely an equivalent to t_ELL_Field.  There are
some generic operations which can be done over a ring, but others
which require division so should be done over a field.  I just took a
look, and the functionality at that level in Sage (requiring a base
field, but not any specific field) includes: quadratic and higher
twists, isogeny operations,  and a few other things.  It is not a
completely logical separation, for example j_invariant is at the level
of rings, despite requiring a division.

Anyway, you may want to consider added a type for elliptic curves over
a general field.

John

PS For those of you who are waiting impatiently, I have precisely one
remaining conductor currently computing before my database reaches
conductor 300,000.

On 20 October 2012 16:02, Bill Allombert
<Bill.Allombert@math.u-bordeaux1.fr> wrote:
> On Tue, Oct 16, 2012 at 10:38:30PM +0200, Bill Allombert wrote:
>> Dear PARI developers,
>>
>> Karim and I have been discussing about change to ellinit to make it more useful
>> and to replace ellffinit.
>
> So we have decided about a new format for ellinit output (ell object)
> I have implemented part of it.
> Choice I have made we did not explicitly decide are prefixed by a *
>
> * ell objects will always have 16 components so smallellinit will disappear.
> (ellinit(,0) and ellinit(,1) are deprecated and are equivalent to ellinit()).
>
> components 1 to 13 are the same as for smallellinit.
> 14 is the type, 15 are the type-specific data, 16 are the extended data.
> currently my implementation supports the following types:
> * t_ELL_Rg: general rings, substitute for smallellinit.
> Only basic operations are available.
> t_ELL_Q: curves over Q. (Is it easy to find an integral, (possibly non minimal) model ?)
> t_ELL_Qp: curves defined over Q, seen over Qp.  (not supported yet)
> t_ELL_Fp: curves over F_p
> t_ELL_Fq: curves over F_q
>
> Note that there is no curves over R or C. It is almost always better to define such
> curves by their periods than by a Weierstrass equation.
>
> ellffinit will be removed.
>
> Reductions:
> We frequently want to reduce an elliptic curve over Z to an curve over F_p,
> for some p. The simplest way to do that is Ep=ellinit(E,p).
>
> Unfortunately this leads to some pathology:
>
> 1) Such reduced curve can be singular. A priori we will not
> allow ellinit to define singular curves over F_p.
>
> 2) The prime number can be passed implicitly, for example when asked about the
> order of a point defined over Fp on a curve defined over Z: e.g.
> ellorder(ellinit([0,0,0,1,2]),[Mod(13,17),Mod(11,17)])
>
> 3) We still want the ability to compute local invariants at primes of bad reduction.
>
> sometimes both 1,2 and 3) happens. Do we want to allow ellorder on singular curves:
> ellorder(ellinit([0,0,0,1,5]),[41,0]*Mod(1,97))
>
> Coordinate changes:
> ellchangecurve must be careful to update the type specific and the extended data
> correctly.
>
> Cheers,
> Bill.
>