Prof. J. E. Cremona on Fri, 20 Jan 2006 11:13:02 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Two suggestions about elldata |
A small adjustment to Bill's suggestion might be easier to use: forell(E,N=N1,N2, seq ) where simultaneously N runs through conductors from N1 to N2 and E is assigned to the successive curves of conductor N in turn; moreover E should be assigned ot the full data in the database, so E=[E[1],E[2],E[3]] = [id string, coeffs, points]. I suggest also keeping the single string for the id, but providing a little utility function as in my first posting to expand the id code into a triple [N,"class",num]. If that could be implemented it would cover all possible uses that I can see! John Bill Allombert wrote: > On Wed, Jan 18, 2006 at 09:28:59PM +0100, Bill Allombert wrote: > >>On Wed, Jan 18, 2006 at 03:36:14PM +0000, Prof. J. E. Cremona wrote: >> >>>(1) As Bill has reported, although ellsearch() allows one to take from >>>the database all elliptic curves with a given conductor, it is >>>inefficient to do this in a loop, say from N=N1 to N=N2, since each call >>>to ellsearch() causes the entire relevant database file to be read in. >>> >>>I suggest adding a function of the form >>> >>>forell(E,N1,N2, seq ) which would execute seq for all elliptic curves E >>>in the database with N1 <= cond(E) <= N2; which would only read each >>>file once. >>> >>>That's my first wish-list suggestion (of 2006). >> >>Here a patch that do that. >> >>The issue I see is that there is no easy way to get the conductor from >>the curve... which lead us to your second wishlist. >> >>In particular there are no easy ways to rewrite src/test/in/ellglobalred >>in term of forell. > > > One solution would be to change forell to loop on conductors instead > of curves, more precisely in forell(E,N1,N2, seq ), E would be set to > a vector [cond, curve1, curve2,...,curven] where cond is the conductor > and curve1,...,curven is the set of curves of conductor cond. > We could call it forellcond(E, N1, N2, seq). > > This imply the user will have to write an embedded loop to process each > curves, unless they are only interested in the numbers of curves by > conductors. > > src/test/in/ellglobalred could then be rewritten in term of forellcond: > > check(L)= > { local(e); > N = L[1]; > for(i=2,#L, > e = L[i][2]; > M = ellglobalred( ellinit(e, 1) )[1]; > if (N != M, print(e," bad for N = ",N)) > ); > } > forellcond(L,0,9999,check(L)) > > Opinions ? > > Cheers, > Bill. > -- Prof. J. E. Cremona | University of Nottingham | Tel.: +44-115-9514920 School of Mathematical Sciences | Fax: +44-115-9514951 University Park | Email: John.Cremona@nottingham.ac.uk Nottingham NG7 2RD, UK | This message has been checked for viruses but the contents of an attachment may still contain software viruses, which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.