Summer School and Coding Sprint
Organizers:
Michael Rubinstein, William Stein
Additional mentors
William Hart, David Kohel, Fredrik Stromberg, Gonzalo Tornaria
Location:
Floor Two of the Mechanical Engineering Building. Campus maps
University of Washington, Seattle, June 16-20 2008
We will meet each day at 9 a.m..
Accomodations:
We have reserved many rooms at the Collegiana Inn, 4311 12th Ave NE, Seattle, WA 98105. Here is a map.
Participants:
Nick Alexander
Jennifer Balakrishnan
Ce Bian
Jonathan Bober
Tom Boothby
Robert Bradshaw
Salman Butt
Craig Citro
William Hart
Ghaith Hiary
Kevin Mcgown
Robert Miller
Clement Pernet
R. Rishikesh
David Roe
Michael Rubinstein
Sourav Sen Gupta
William Stein
Fredrik Stromberg
Gonzalo TornarĂa
Shuntaro Yamagishi
Our FRG Project
You will be helping us carry out the research described here: frg.pdf
Topics for our first school/coding-sprint
1) Maass form algorithms for Gl(2) and GL(3) . This is to follow up on exciting new developments. Booker and his student Brian just found the first examples of GL(3) Maass forms, and we'd like to explore their method and also a somewhat different approach of Farmer, Koutsoliotas, and Lemurell that has potential.
For classical Maass forms we'd like to organize all existing methods/data/software and work on extending that further.
2) Algorithms for classical modular forms including related elliptic curves algorithms and related exact linear algebra. Weight 1 modular forms. Modular abelian varieties.
3) Certification (i.e. rigorous computations) for degree 1 L-functions and for GL(2) Maass forms.
4) Hilbert modular form and Siegel modular form algorithms.
5) Analytic algorithms related to the explicit formula and smoothed approximate functional equation.
6) Making a working prototype of our software/data archive and reviving our L-function and modular form wiki.
Specific projects (post here... more to follow. Provide feedback if you wish)
FFT projects
1) implement in c or c++ a really fast Ramanujan \tau(n) algorithm for n<=N using the fft. It should run in O(N^{1+\epsilon}) time. This will be useful for: my L-function package where my routine currently computes \tau(n) in O(N^{3/2}) time). I also want to us it to generate long tables of \tau(n) to test some ideas concerning the rate of convergence to the Sato-Tate distribution. [David Harvey already gave such an implementation as an illustration/demo of FLINT a year ago at Sage Days 4. The delta_qexp function in Sage right now does this, but using NTL for the poly multiplication.]
Do same for the cusp forms of weight 16,18,20,22,26.
2) write a really fast congruent number routine, and more generally theta series for ternary quadratic forms. I'd like to be able to get the coefficients up to 10^{12}.
21) Implement an arbitary-length FFT in interval arithmetic.
Modular Forms Projects
ModForms - Working group for Modular forms
S_2(N), N \leq 10000
S_k(N), K,N \leq 100
S_2(\Gamma_1(N)), N<100
8) Implement Kevin Buzzard's algorithm for computing weight 1 modular forms.
24) Wrap Drew Sutherland's smalljac_Lpolys, which is the fastest code in the world for computing elliptic curve a_p and hyperelliptic curve L-series.
anaytic L-function algorithms
3) implement the Dokchitser algorithms in C/C++/Python (the algorithms in his pari package). [Jennifer Balakrishnan is implementing this right now in Sage.]
6) a really good Riemann-Siegel formula implementation in c/c++, including off the 1/2 line too. I'd also like to have a c/c++ implementation of the Odlyzko-Schonhage algorithm, and Ghaith Hiary's new algorithm.
11) Implement an improved zero finding routine for L-functions that allows one to start at any height. Essentially we want a reasonably good S(T) algorithm.
7) Problems related to computing higher degree incomplete integrals/mellin transforms.
Moment conjectures
Maass Forms
Multiprecision linear algebra
12) Setup in a systematic way massive runs of Maass waveform programs to generate Laplace eigenvalues and Fourier coefficients.
13) Implement general Maass waveform algorithms in arbitrary precision, in either Fortran 90 or C/C++.
14) Implement an efficient arbitrary-precision K-Bessel function (with real argument and complex parameter) and Whittaker W-function in either Fortran 90 or C/C++). Cremona has done this:
Anyway: if you look in eclib*/src/procs/kbessel.{h,cc} you will find
a C++ rewrite of pari's K-Bessel routine, which I have used for my
computations over imaginary quadratic forms. I only used (or tested)
K_0 and K_1 but the code is general, and might be easier to read than
pari source. Help yourselves!
15) Implementing a general automorphy-based (Hejhal-type) algorithm in SAGE for, say \Gamma_{0}\left(N\right) and Dirichlet character.
16) Implement fast K-Bessel and Whittaker function in SAGE (e.g. link to Fortran 90 or C/C++).
17) Optimize routines that deals with general subgroups of the modular group. For example making efficient routines for finding and sorting conjugacy classes (using e.g. permutation representations or Farey representations). The current implementation is in Fortran 90, but any language/program is fine as long as it can efficiently deal with subgroups of, say index \ge 13.
18) Implement a more efficient (adaptive) algorithm to search for Laplace eigenvalues in general setting, i.e. implement Turing's test or Weyl's law.
19) Clean up, document and package my Maass waveform Fortran programs in a way that they are usable by anyone.
20) Make a serious attempt at extending the Maass form certification stuff to congruence groups. With Fredrik Stromberg there and hopefully some student interest, we should be able to get something done.
optimizing, testing, system
4) Develop a suite of tests for my L-function package, so after installing one can do a 'make check' to verify that all is okay.
5) Optimize my use of gmp/mpfr/gmpfrxx in the L-function package.
Wiki
9) For our wiki- add a layer to the registration process, an agreement to abide by the result of our copyright discussions last summer (creative commons license, etc)
10) Add a button to the wiki to allow for: editing the current window locally in an editor of one's choice (such as vi or emacs), locking the page to avoid conflicting edits for a set amount of time, and then clicking another button to return the changed page and unlock it for other people to edit. Basically, the moin moin edit window is not powerful enough.
For the workshop
22) Use 21) to verify the Riemann hypothesis for many Dirichlet characters of large conductor (using FFT in the character aspect). This is my (Booker's) feeling for how the RH verifications should go for large q, and it would be good to get something done on that during the workshop.
23) Feasibility study for extending Bian's algorithm to one for computing GL(4) forms. I can give a basic outline at the workshop, and hopefully get some input from William and other experts on computing holomorphic modular forms. There are several possible topics of study related to this.
