Ticket #6959 (needs_work enhancement)

Opened 4 years ago

Last modified 4 years ago

[with patch; needs work] modular forms -- add aplist and anlist for newforms

Reported by: was Owned by: craigcitro
Priority: major Milestone: sage-5.10
Component: modular forms Keywords:
Cc: Work issues:
Report Upstream: Reviewers:
Authors: Merged in:
Dependencies: Stopgaps:

Description


Attachments

trac_6959.patch Download (5.5 KB) - added by was 4 years ago.

Change History

comment:1 Changed 4 years ago by was

  • Summary changed from modular forms -- add aplist and anlist for newforms to [with patch; needs review] modular forms -- add aplist and anlist for newforms

Changed 4 years ago by was

comment:2 Changed 4 years ago by cremona

  • Status changed from needs_review to needs_work
  • Summary changed from [with patch; needs review] modular forms -- add aplist and anlist for newforms to [with patch; needs work] modular forms -- add aplist and anlist for newforms

Looks mainly good to me -- patch applies and tests (in sage/modular/modform) pass. One glitch:

        if not all_embeddings: 
 	            return A 
 	return A 

looks like a typo.

It does not seem very efficient to factor all the n in the range, and that is not the way I have always done this. The result is pretty slow -- for example, if you wanted to compute all a_n for n<106, this is not good enough:

sage: f = CuspForms(11,2).newforms()[0]; f
q - 2*q^2 - q^3 + 2*q^4 + q^5 + O(q^6)
sage: time an = f.anlist(1000)
CPU times: user 0.40 s, sys: 0.00 s, total: 0.40 s
Wall time: 0.40 s
sage: time an = f.anlist(10000)
CPU times: user 13.84 s, sys: 0.79 s, total: 14.63 s
Wall time: 14.65 s
sage: time an = f.anlist(100000)
#(gave up waiting after a few minutes)

On second thoughts it is probably computing the a_p which is slow here. But are they even cached?

sage: time an = f.aplist(10000)
CPU times: user 11.09 s, sys: 0.65 s, total: 11.74 s
Wall time: 11.81 s
sage: time an = f.anlist(10000)
CPU times: user 13.71 s, sys: 0.69 s, total: 14.40 s
Wall time: 14.53 s

-- it seems not.

Note: See TracTickets for help on using tickets.