John Cremona on Wed, 16 May 2012 12:56:14 +0200

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

Re: elliptic curves with prescribed periods

As it happens I wanted exactly this function myself just now.  Your
f() as defined here did not work for me using version 2.5.1, but is OK
with 2.6.0.

In case anyone is interested, I had periods approximately [2*x,x+y*I]
with x=0.0017237131288014931634375894696418139876 and
y=0.0088075252675047227730811538038700492673 and Bill's function
allowed me to recover the curve's minimal model as [1, 1, 1,
-229872576744, -42424810617266967].  This curve has conductor 238854
and will soon be baptised as 238854bk1.

The additional step I needed was:  from the output of Bill's function,
say e0,  you take e0.c4 and e0.c6, round them to get c4,c6 and then
return ellminimalmodel([0,0,0,-27*c4,-54*c6]).  To cut out the middle
step, just define c4=12*g2=12*elleisnum(om,4,1),
c6=216*g3=216*elleisnum(om,6,1).  the scaling factors 12,216 are on
page 45 of my book.  Hence:


returns [1, 1, 1, -229872576744, -42424810617266967,...]


On 13 May 2012 20:36, Bill Allombert <> wrote:
> On Sat, May 12, 2012 at 02:14:04PM +0200, Bill Allombert wrote:
>> Dear PARI users,
>> Is there a convenient way to build an elliptic curve with prescribed period in
>> ellinit Weierstrass form ?
>> g2=elleisnum(om,4,1);
>> g3=elleisnum(om,6,1); will give you the curve in the form
>> y^2 = 4*x^3 - g2*x - g3
>> and then you will have to do a coordinate change before being able to use ellinit,
>> which is not very convenient.
> Well it seems the correct formula is
> f(om)=ellinit(-1/4*[elleisnum(om,4,1),elleisnum(om,6,1)])
> so that f(om).omega==om
> Cheers,
> Bill.