Thursday status reports
(Butt) Computed Hecke eigenvalues a_p on S_2(\Gamma_0(N)) for N a small prime and p \leq 100,000 on Lonestar. Data here.
First run was N between 2 and 100 (25 tasks) over 8 cores, as a test. It took about 48 minutes (due to my small processor request). Level 97 took 524s to compute the eigenvalues.
Second run was N between 100 and 500 (70 tasks) over 70 cores. It took about 12 minutes. Level 499 took 54s to compute the eigenvalues.
Computed N from 600 to 700 by chopping up range of p into 10 blocks of size 10,000 for each N (160 tasks). Used 160 cores and took about 7 minutes. Level 691 for p between 90,000 and 100,000 took 111s to compute the eigenvalues. Code is here. These still need to be merged into one sobj. Craig and I just wrote code to do this, which we're attaching here.
Submitted job to compute N from 700 to 1000 by chopping up p range (430 tasks) using 430 cores.
(Stein) Computed Hecke eigenvalues a_p on S_2(\Gamma_0(N)) for N<2475 and 2890<N\leq 3000 for p\leq 10,000. Data here:
(Stein) Implemented fast computation of a_p for S_2(N, \chi) for any character \chi. Code is here in patches 6-9. Resulting implementation is 4-20 times faster than Magma on the first few examples. Currently computing using this algorithm:
Some data is also being computed on eight.math.washington.edu...
(Stein) Working on optimizing computing a_p for higher weight. First change: use FLINT directly. Got an easy drop-in replacement for a bottlekneck function that speeds that function up by a factor of 68 in a test case:
sage: timeit('sage.modular.modsym.apply.apply_to_monomial(7,10,1,2,3,4)')
625 loops, best of 3: 685 µs per loop
sage: timeit('sage.modular.modsym.apply.apply_to_monomial_2(7,10,1,2,3,4)')
625 loops, best of 3: 10.1 µs per loop
sage: 685/10.0
68.5000000000000This has an immediate large impact all over Sage's modular symbols:
BEFORE: sage: M = ModularSymbols(37,4) sage: time M.hecke_matrix(43) CPU times: user 1.31 s, sys: 0.14 s, total: 1.45 s Wall time: 1.51 s AFTER: sage: M = ModularSymbols(37,4) sage: time M.hecke_matrix(43) CPU times: user 0.18 s, sys: 0.00 s, total: 0.18 s Wall time: 0.19 s 20 x 20 dense matrix over Rational Field
See this patch.
(Citro) Took the output of William's code, used that to compute all a_n, and automated the creation of a script which is valid input to lcalc. I'm going to automate the running of lcalc and calculation of zeros in a moment. In the interim, here's the imaginary part of the 100th zero of the newform (corresponding to an abelian variety of dimension 6): 80.060508302. Here's the 1000th: 540.4341579112.
