Opened 12 years ago

Closed 11 years ago

Last modified 11 years ago

#8292 closed enhancement (duplicate)

improvements to eisenstein_series_qexp

Reported by: AlexGhitza Owned by: craigcitro
Priority: minor Milestone: sage-duplicate/invalid/wontfix
Component: modular forms Keywords:
Cc: Merged in:
Authors: Reviewers: Alex Ghitza
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

The attached patch makes the following changes to eisenstein_series_qexp:

  • removes the workaround at the end of the method, since it is no longer needed
  • a few small modifications that speed things up a bit:

BEFORE THE PATCH:

sage: timeit("eisenstein_series_qexp(4, 100)")
125 loops, best of 3: 6.19 ms per loop
sage: timeit("eisenstein_series_qexp(4, 1000)")
5 loops, best of 3: 56.4 ms per loop
sage: timeit("eisenstein_series_qexp(4, 10000)")
5 loops, best of 3: 568 ms per loop
sage: timeit("eisenstein_series_qexp(4, 100000)")
5 loops, best of 3: 5.84 s per loop
sage: timeit("eisenstein_series_qexp(6, 100)")
125 loops, best of 3: 6.26 ms per loop
sage: timeit("eisenstein_series_qexp(6, 1000)")
5 loops, best of 3: 57 ms per loop
sage: timeit("eisenstein_series_qexp(6, 10000)")
5 loops, best of 3: 575 ms per loop
sage: timeit("eisenstein_series_qexp(6, 100000)")
5 loops, best of 3: 5.97 s per loop
sage: timeit("eisenstein_series_qexp(100, 1000)")
5 loops, best of 3: 100 ms per loop
sage: timeit("eisenstein_series_qexp(100, 10000)")
5 loops, best of 3: 1.21 s per loop
sage: timeit("eisenstein_series_qexp(1000, 10000)")
5 loops, best of 3: 12.9 s per loop

AFTER THE PATCH:

sage: timeit("eisenstein_series_qexp(4, 100)")
125 loops, best of 3: 2.21 ms per loop
sage: timeit("eisenstein_series_qexp(4, 1000)")
25 loops, best of 3: 20.5 ms per loop
sage: timeit("eisenstein_series_qexp(4, 10000)")
5 loops, best of 3: 220 ms per loop
sage: timeit("eisenstein_series_qexp(4, 100000)")
5 loops, best of 3: 2.41 s per loop
sage: timeit("eisenstein_series_qexp(6, 100)")
125 loops, best of 3: 2.24 ms per loop
sage: timeit("eisenstein_series_qexp(6, 1000)")
25 loops, best of 3: 21 ms per loop
sage: timeit("eisenstein_series_qexp(6, 10000)")
5 loops, best of 3: 223 ms per loop
sage: timeit("eisenstein_series_qexp(6, 100000)")
5 loops, best of 3: 2.54 s per loop
sage: timeit("eisenstein_series_qexp(100, 1000)")
5 loops, best of 3: 50.6 ms per loop
sage: timeit("eisenstein_series_qexp(100, 10000)")
5 loops, best of 3: 641 ms per loop
sage: timeit("eisenstein_series_qexp(1000, 10000)")
5 loops, best of 3: 8.62 s per loop

Attachments (1)

trac_8292.patch (2.2 KB) - added by AlexGhitza 12 years ago.

Download all attachments as: .zip

Change History (6)

Changed 12 years ago by AlexGhitza

comment:1 Changed 11 years ago by mraum

  • Status changed from new to needs_info

This is already covered by the cythonification of the Eisenstein series. I propose we close this ticket. Any objections, Alex?

comment:2 Changed 11 years ago by AlexGhitza

  • Authors Alex Ghitza deleted
  • Status changed from needs_info to needs_review

That sounds right.

I'm marking this as "positive review" so it gets picked up.

To the release manager: please close this, as the issue has already been addressed by #6671.

comment:3 Changed 11 years ago by AlexGhitza

  • Status changed from needs_review to positive_review

comment:4 Changed 11 years ago by jdemeyer

  • Resolution set to duplicate
  • Reviewers set to Alex Ghitza
  • Status changed from positive_review to closed

comment:5 Changed 11 years ago by mvngu

  • Milestone changed from sage-4.6.1 to sage-duplicate/invalid/wontfix
Note: See TracTickets for help on using tickets.