\documentclass[landscape]{slides}
\usepackage{fullpage}
\usepackage[hypertex]{hyperref}
\usepackage{amsmath}
\newcommand{\abcd}[4]{\left(
        \begin{smallmatrix}#1&#2\\#3&#4\end{smallmatrix}\right)}
\newcommand{\eps}[4]{\rput[lb](#1,#2){%
    \includegraphics[width=#3\textwidth]{#4}}}

\newcommand{\ds}{\displaystyle}

\usepackage{fancybox}
\usepackage{graphicx}

\usepackage{pstricks} 
\newrgbcolor{dbluecolor}{0 0 0.6}
\newrgbcolor{dredcolor}{0.5 0 0}
\newrgbcolor{dgreencolor}{0 0.4 0}
\newcommand{\dred}{\dredcolor\bf}
\newcommand{\dblue}{\dbluecolor\bf}
\newcommand{\dgreen}{\dgreencolor\bf}
\newcommand{\hd}[1]{\begin{center}\LARGE\bf\dblue #1\vspace{-2.5ex}\end{center}}
\newcommand{\rd}[1]{{\bf \dred #1}}
\newcommand{\gr}[1]{{\bf \dgreen #1}}
\newcommand{\defn}[1]{{\bf \dblue #1}}

\newcommand{\Q}{\mathbf{Q}}

\author{\rd{William A. Stein}\\
Associate Professor of Mathematics\\
University of California, San Diego}
\date{\rd{San Diego Supercomputing Center: August 3, 2005}}
%\include{macros}

\setlength{\fboxsep}{1em}
\setlength{\parindent}{0cm}

\newcommand{\page}[1]{\begin{slide}#1\vfill\end{slide}}
%\renewcommand{\page}[1]{}
\newcommand{\apage}[1]{\begin{slide}#1\vfill\end{slide}}
\newcommand{\heading}[1]{\begin{center} \Large \dblue #1 \end{center}}

\title{\blue \bf An Introduction to the\\Modular Forms Database Project:\\
{\large My 
Dream Computation (not a toy problem!)}}

\begin{document}
\page{
\maketitle
}

\page{
\heading{The Pythagorean Theorem}
\psset{unit=3.0}
\pspicture(0,0)(4,3)
\psline[linecolor=blue, linewidth=0.06](0,0)(4,0)
\psline[linecolor=blue, linewidth=0.06](4,0)(4,3)
\psline[linecolor=blue, linewidth=0.06](4,3)(0,0)
\rput(2.6,0.8){{\LARGE $a^2+b^2=c^2$}}
\rput(1.9,1.8){{\LARGE $c$}}
\rput(4.3,1.3){{\LARGE $a$}}
\rput(2.2,-0.35){{\LARGE $b$}}
\rput(6,1.5){\includegraphics{pics/pythagoras15}}
\rput[cb](6.0,-0.35){Pythagoras}
\rput[cb](6.0,-0.6){Approx 569--475BC}
\endpspicture
}


\page{
\heading{Pythagorean Triples}
\psset{unit=1.0}
\pspicture(0,0)(10,12)
\rput[lb](5,1.5){\includegraphics[width=0.65\textwidth]{pics/plimpton2}}
\rput[lb](18,12.5){\includegraphics[width=0.1\textwidth]{pics/tower}}
\rput[lb](5,0.7){Triples of integers $a,b,c$ such that}
\rput[lb](9,-0.5){{\Large $a^2+b^2=c^2$}}
\rput[lb](0,0){{$\begin{array}{|c|}\hline
\vspace{-2ex}\\
( 3, 4, 5 )\\
( 5, 12, 13 )\\
( 7, 24, 25 )\\
( 9, 40, 41 )\\
( 11, 60, 61 )\\
( 13, 84, 85 )\\
( 15, 8, 17 )\\
( 21, 20, 29 )\\
( 33, 56, 65 )\\
( 35, 12, 37 )\\
( 39, 80, 89 )\\
( 45, 28, 53 )\\
( 55, 48, 73 )\\
( 63, 16, 65 )\\
( 65, 72, 97 )\\
( 77, 36, 85 )
\vspace{-1ex}\\\vdots \\
\hline
\end{array}
$}}
\endpspicture
} % end page


\page{
\heading{Enumerating Pythagorean Triples}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Graph: param
%% (Contact: William Stein, http://modular.fas.harvard.edu)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\psset{unit=4.0}
\pspicture(-1.300,-1.200)(1.300,1.300)
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor
%RGB color (0.40000000000000002, 0.40000000000000002, 0.40000000000000002)
\newrgbcolor{mycolor}{0.40 0.40 0.40}\mycolor

%linewidth = 0.02
\psset{linewidth=0.02}
%- axes
\psline[linecolor=mycolor]{->}(-1.300,0.000)(1.300,0.000)
\rput[lb](1.600,0.000){}
\psline[linecolor=mycolor]{->}(0.000,-1.200)(0.000,1.300)
\rput[lb](0.000,1.600){}

%linewidth = 0.03
\psset{linewidth=0.03}
%RGB color (0.10000000000000001, 0.10000000000000001, 1.0)
\newrgbcolor{mycolor}{0.10 0.10 1.00}\mycolor

%Circle at (0, 0) of radius 1
\pscircle[linecolor=mycolor](0, 0){1}
%RGB color (1.0, 0.0, 0.0)
\newrgbcolor{mycolor}{1.00 0.00 0.00}\mycolor

%Line from (-1.5, -0.25) to (1.2, 1.1000000000000001)
\psline[linecolor=mycolor]{<->}(-1.5, -0.25)(1.2, 1.1000000000000001)
%RGB color (0.0, 0.0, 0.0)
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor

%Solid dot at (-1.000,0.000) of radius 0.05
\pscircle*[linecolor=mycolor](-1.000,0.000){0.050}
%Solid dot at (0.000,0.500) of radius 0.05
\pscircle*[linecolor=mycolor](0.000,0.500){0.050}
%Solid dot at (0.000,0.500) of radius 0.05
\pscircle*[linecolor=mycolor](0.000,0.500){0.050}
%RGB color (0.10000000000000001, 1.0, 0.10000000000000001)
\newrgbcolor{mycolor}{0.10 1.00 0.10}\mycolor

%Solid dot at (0.580,0.800) of radius 0.08
\pscircle*[linecolor=mycolor](0.580,0.800){0.080}
%RGB color (0.0, 0.0, 0.0)
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor

\rput[lb](-1.59, 0.050000000000000003){{$(-1,0)$}}
\rput[lb](0.1, 0.34999999999999998){{$(0,t)$}}
\rput[lb](0.4, 0.95){{$(x,y)$}}

\rput[lb](2,-0.5){$\begin{array}{rl}
\ds{\rm Slope} \,=\, t&\ds=\quad\! \frac{y}{x+1}\vspace{2.5ex}\\
  \ds x &=\quad\! \ds\frac{1-t^2}{1+t^2}\vspace{2.5ex}\\
  \ds y &=\quad\! \ds\frac{2t}{1+t^2}\\
\end{array}$
}

\rput[lb](-1.3,-1.5){If $t=\frac{r}{s}$, then
$\dgreencolor \qquad a=s^2-r^2, \quad b=2rs, \quad c=s^2+r^2$}
\rput[lb](-1.3,-1.7){is a Pythagorean triple, and all primitive
unordered triples}
\rput[lb](-1.3,-1.9){arise in this way.}

\endpspicture
} % end page

\page{
\heading{Fermat's ``Last Theorem''\hspace{3em}\mbox{}}
No ``Pythagorean triples'' with exponent $3$ or higher.

\psset{unit=1.0}
\pspicture(-3,0)(10,12)
\eps{0}{-1}{0.4}{pics/diophantus1}
\eps{10}{-1}{0.28}{pics/diophantus2}
\eps{10}{4}{0.26}{pics/wiles_diophantus}
\eps{14.7}{13.7}{0.2}{pics/fermat3}
\endpspicture
} % end page


\page{
\heading{\large Wiles's Proof of FLT Uses Elliptic Curves}
\vspace{-3ex}
{\large An {\dred elliptic curve} is a nonsingular plane cubic curve with
a rational point (possibly ``at infinity'').}
\vspace{1ex}

\psset{unit=1.75}
\pspicture(-2.000,-3.000)(2.000,2.000)
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor
%RGB color (0.69999999999999996, 0.69999999999999996, 0.69999999999999996)
\newrgbcolor{mycolor}{0.70 0.70 0.70}\mycolor
%Grid divided into 2 subdivisions
\newrgbcolor{glc}{0.00 0.00 0.00}
\psgrid[gridcolor=mycolor, subgriddiv=2, gridlabelcolor=glc]


%RGB color (0.20000000000000001, 0.20000000000000001, 0.20000000000000001)
\newrgbcolor{mycolor}{0.20 0.20 0.20}\mycolor

%linewidth = 0.02
\psset{linewidth=0.02}
%$x$-$y$ axes
\psline[linecolor=mycolor]{->}(-2.000,0.000)(2.000,0.000)
\psline[linecolor=mycolor]{->}(0.000,-3.000)(0.000,2.000)
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor

\rput[lb](2.1,2.6){{\large $\infty$}}
\newrgbcolor{mycolor}{0.00 0.00 1.00}\mycolor
\pscircle*[linecolor=mycolor](2.0,2.6){0.05}
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor
\mycolor
\rput[lb](2.150,0.000){{\Large $x$}}
\rput[lb](0.000,2.150){{\Large $y$}}
\newrgbcolor{mycolor}{0.20 0.20 0.20}\mycolor


%linewidth = 0.05
\psset{linewidth=0.05}
%RGB color (0.0, 0.0, 1.0)
\newrgbcolor{mycolor}{0.00 0.00 1.00}\mycolor

%Elliptic curve with invariants [0,0,1,-1,0]
\pscurve[linecolor=mycolor](2.000,-3.000)(1.967,-2.927)(1.933,-2.854)(1.900,-2.782)(1.867,-2.711)(1.833,-2.640)(1.800,-2.569)(1.767,-2.499)(1.733,-2.430)(1.700,-2.361)(1.667,-2.292)(1.633,-2.225)(1.600,-2.157)(1.567,-2.090)(1.533,-2.024)(1.500,-1.958)(1.467,-1.892)(1.433,-1.827)(1.400,-1.763)(1.367,-1.698)(1.333,-1.634)(1.300,-1.571)(1.267,-1.508)(1.233,-1.445)(1.200,-1.382)(1.167,-1.319)(1.133,-1.257)(1.100,-1.194)(1.067,-1.130)(1.033,-1.066)(1.000,-1.000)(0.967,-0.932)(0.933,-0.860)(0.900,-0.781)(0.867,-0.685)(0.867,-0.315)(0.900,-0.219)(0.933,-0.140)(0.967,-0.068)(1.000,-0.000)(1.033,0.066)(1.067,0.130)(1.100,0.194)(1.133,0.257)(1.167,0.319)(1.200,0.382)(1.233,0.445)(1.267,0.508)(1.300,0.571)(1.333,0.634)(1.367,0.698)(1.400,0.763)(1.433,0.827)(1.467,0.892)(1.500,0.958)(1.533,1.024)(1.567,1.090)(1.600,1.157)(1.633,1.225)(1.667,1.292)(1.700,1.361)(1.733,1.430)(1.767,1.499)(1.800,1.569)(1.833,1.640)(1.867,1.711)(1.900,1.782)(1.933,1.854)(1.967,1.927)(2.000,2.000)(2.033,2.074)\pscurve[linecolor=mycolor](0.267,-0.548)(0.233,-0.671)(0.233,-0.671)(0.200,-0.741)(0.200,-0.741)(0.167,-0.797)(0.167,-0.797)(0.133,-0.845)(0.133,-0.845)(0.100,-0.889)(0.100,-0.889)(0.067,-0.929)(0.067,-0.929)(0.033,-0.966)(0.033,-0.966)(-0.000,-1.000)(-0.000,-1.000)(-0.033,-1.032)(-0.033,-1.032)(-0.067,-1.062)(-0.067,-1.062)(-0.100,-1.091)(-0.100,-1.091)(-0.133,-1.117)(-0.133,-1.117)(-0.167,-1.142)(-0.167,-1.142)(-0.200,-1.165)(-0.200,-1.165)(-0.233,-1.186)(-0.233,-1.186)(-0.267,-1.205)(-0.267,-1.205)(-0.300,-1.223)(-0.300,-1.223)(-0.333,-1.239)(-0.333,-1.239)(-0.367,-1.253)(-0.367,-1.253)(-0.400,-1.266)(-0.400,-1.266)(-0.433,-1.276)(-0.433,-1.276)(-0.467,-1.284)(-0.467,-1.284)(-0.500,-1.291)(-0.500,-1.291)(-0.533,-1.295)(-0.533,-1.295)(-0.567,-1.297)(-0.567,-1.297)(-0.600,-1.296)(-0.600,-1.296)(-0.633,-1.293)(-0.633,-1.293)(-0.667,-1.288)(-0.667,-1.288)(-0.700,-1.279)(-0.700,-1.279)(-0.733,-1.267)(-0.733,-1.267)(-0.767,-1.252)(-0.767,-1.252)(-0.800,-1.233)(-0.800,-1.233)(-0.833,-1.210)(-0.833,-1.210)(-0.867,-1.182)(-0.867,-1.182)(-0.900,-1.149)(-0.900,-1.149)(-0.933,-1.109)(-0.933,-1.109)(-0.967,-1.060)(-0.967,-1.060)(-1.000,-1.000)(-1.000,-1.000)(-1.033,-0.924)(-1.033,-0.924)(-1.067,-0.821)(-1.067,-0.821)(-1.100,-0.638)(-1.100,-0.638)(-1.100,-0.362)(-1.067,-0.179)(-1.033,-0.076)(-1.000,-0.000)(-0.967,0.060)(-0.933,0.109)(-0.900,0.149)(-0.867,0.182)(-0.833,0.210)(-0.800,0.233)(-0.767,0.252)(-0.733,0.267)(-0.700,0.279)(-0.667,0.288)(-0.633,0.293)(-0.600,0.296)(-0.567,0.297)(-0.533,0.295)(-0.500,0.291)(-0.467,0.284)(-0.433,0.276)(-0.400,0.266)(-0.367,0.253)(-0.333,0.239)(-0.300,0.223)(-0.267,0.205)(-0.233,0.186)(-0.200,0.165)(-0.167,0.142)(-0.133,0.117)(-0.100,0.091)(-0.067,0.062)(-0.033,0.032)(-0.000,0.000)(0.033,-0.034)(0.067,-0.071)(0.100,-0.111)(0.133,-0.155)(0.167,-0.203)(0.200,-0.259)(0.233,-0.329)(0.267,-0.452)(0.267,-0.548)


%RGB color (0.0, 0.0, 0.0)
\newrgbcolor{mycolor}{0.00 0.00 0.00}\mycolor

%"{\LARGE $y^2+y = x^3-x$}" at position (-1, -3.7000000000000002)
\rput[lb](-1.8, -4){{\large\dblue $y^2+y = x^3-x$}}

\rput[lb](5,2){{\dgreen EXAMPLES}}
\rput[lb](4,1){\Large $y^2+y = x^3-x$}
\rput[lb](4,0){{\Large $x^3 + y^3 = 1$} (Fermat cubic)}
\rput[lb](4,-1){{\Large $y^2 = x^3+ax+b$}}
\rput[lb](4,-2){{\Large $3x^3+4y^3+5=0$}}
\newrgbcolor{mycolor}{1.00 0.00 0.00}\mycolor
\psset{linewidth=0.02}
\psline[linecolor=mycolor](2.7,-1.5)(11,-2)
\psline[linecolor=mycolor](2.7,-2)(11,-1.5)
\endpspicture
}

\page{\heading{\mbox{}\hspace{2em}The Frey Elliptic Curve}
\psset{unit=1.0}
\pspicture(0,0)(1,1)
\eps{0}{-1}{0.23}{pics/frey2005}
\endpspicture
\par\noindent{}Suppose Fermat's conjecture is \rd{FALSE}. 
Then there is a prime $\ell\geq 5$ and coprime
positive integers $a,b,c$ with
$
a^\ell + b^\ell = c^\ell.
$

Consider the corresponding Frey elliptic curve:
$$
y^2 = x(x-a^\ell)(x+b^\ell).
$$

\begin{center}
{\dblue{Ribet's Theorem:}} This elliptic curve is not {\em modular}.

{\gr{Wiles's Theorem:}} This elliptic curve is {\em modular}.

{\rd{Conclusion:}} Fermat's conjecture is true. 
\end{center}
}

\page{
\heading{Counting Solutions Modulo $p$}
\vspace{-5ex}

$$N(p) = \text{\# of solutions }\,(\text{mod }p)$$
$$y^2 + y = x^3 - x \pmod{7}$$
\begin{center}
\psset{unit=0.7in}
\pspicture(0,0)(6,6)
\psgrid[gridcolor=lightgray, subgriddiv=1, gridlabels=10pt]
\psline[linewidth=0.03]{->}(0,0)(6,0)\psline[linewidth=0.03]{->}(0,0)(0,6)
\pscircle*[linecolor=blue](2,2){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](0,0){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](6,0){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](1,0){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](1,6){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](6,6){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](0,6){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](2,4){0.1999999999999999999999999999}
\pscircle*[linecolor=blue](7,7){0.1999999999999999999999999999}
\rput[bl](7.2,7){$\infty$}
\put(6.3,3){\LARGE $N(7) = 9$}
%\eps{-3}{-1}{0.07}{pics/gnome1}
%\eps{-4}{-1.1}{0.07}{pics/gnome1}
%\eps{-2}{-1.2}{0.07}{pics/gnome1}
%\rput[bl](-3.5,-1.5){{\tiny Point counting gnomes}}
\endpspicture{}\qquad
\end{center}
} % end page


\page{
\heading{Counting Points\hspace{2em}\mbox{}}

{\dgreen\mbox{}\hspace{1em}\noindent{}Cambridge \rd{EDSAC:} The first\\
\mbox{}\hspace{1em}point counting supercomputer...}\\
\psset{unit=1.0}
\pspicture(0,0)(0,0)
\eps{0.3}{-10.5}{0.57}{pics/edsac}
\eps{14}{-.75}{0.3}{pics/birch_and_swinnerton-dyer}
\eps{14}{-10.5}{0.4}{pics/swinnerton_dyer-count}
\put(13,-1.5){Birch and Swinnerton-Dyer}
\endpspicture

} % end page

\page{
\heading{The Hecke \dred{Eigenvalue}}
\psset{unit=1.0}
\pspicture(0,0)(0,0)
\eps{18}{-5}{0.3}{pics/hasse}
\put(19.5,-6){Hasse}
\endpspicture
Let
{\LARGE
$$
a_p = p+1 - N(p).
$$
}
Hasse proved that 
{\Huge\dblue
$$
 |a_p| \leq 2\sqrt{p}.
$$}
For $y^2+y=x^3-x$:
$$
a_2 = -2,\quad a_3 = -3,\quad a_5 = -2,\quad a_7 = -1,
\quad a_{11} = -5,\quad a_{13} = -2,$$
$$a_{17}=0,\quad a_{19} = 0,\quad a_{23}=2,\quad a_{29}=6,\quad \ldots $$
} % end page


\page{
\heading{Elliptic Curves are ``Modular''}
An elliptic curve is {\em\rd{modular}} if the numbers
$a_p$ are coefficients of a ``modular form''.  

{\bf Theorem (Wiles et al.):} {\em Every elliptic curve over the rational
numbers is modular.}  

\psset{unit=1.0}
\pspicture(0,0)(0,0)
\eps{7}{-6}{0.4}{pics/wiles-princeton}
\put(6.4,-7){{\tiny Wiles at the Institute for Advanced Study}}
\endpspicture
}


\page{
\heading{Modular Forms}
The definition of  modular 
forms as holomorphic functions satisfying 
a certain equation is very abstract. 

I will skip the abstract definition, and instead give you an
explicit ``engineer's recipe'' for producing modular forms.  
In the meantime, here's a picture:

\psset{unit=1.0}
\pspicture(0,0)(0,0)
\eps{5}{-9}{0.6}{pics/modform37a}
\endpspicture


}

\page{
\heading{Computing Modular Forms: Motivation}

\vfill

\rd{Motivation:} Data about modular forms is \rd{extremely} useful to
many research mathematicians (e.g., number theorists, cryptographers).  This data is like the astronomer's telescope images.

\vfill

I want to compute modular forms on a \rd{\Huge huge} scale using the SDSC
resources, and make the resulting database widely available.  I have
done this on a small scale during the last 5 years --- see {\tt
  http://modular.fas.harvard.edu/Tables/} 
\vfill

}

\page{
\heading{What to Compute: Newforms}

For each positive integer $N$ there is a finite list of \rd{newforms}
of level $N$.  E.g., for $N=37$ the newforms are
\begin{align*}
  f_1 &= q - 2q^2 - 3q^3 + 2q^4 - 2q^5 + 6q^6 - q^7 + \cdots\\
  f_2 &= q + q^3 - 2q^4 - q^7 + \cdots,
\end{align*}
where $q=e^{2\pi i z}$.

The newforms of level~$N$ determine all the modular forms of level $N$
(like a basis in linear algebra).  The coefficients are algebraic integers.
{\em Goal: compute these newforms.}

{\small Bad idea -- write down many elliptic curves and compute the numbers
$a_p$ by counting points over finite fields.  No good -- this misses
most of the interesting newforms, and gets newforms of all kinds of
random levels, but you don't know if you get everything of a given
level.}

}

\page{
\heading{An Engineer's Recipe for Newforms}
Fix our positive integer $N$.  For simplicity assume that $N$ is prime.
{\small
\begin{enumerate}
\item Form the $N+1$ dimensional $\Q$-vector space $V$ with basis the
  symbols $[0], \ldots, [N-1], [\infty]$.
\item Let $R$ be the suspace of $V$ spanned by the following
vectors, for\\ $x=0,\ldots, N\!-\!1, \infty$:
\begin{align*}
&  [x] - [N-x]  \\
&  [x] + [x.S] \\
&  [x] + [x.T] + [x.T^2] \\
\end{align*}  
$S=\abcd{0}{-1}{1}{\hfill 0}$, $T=\abcd{0}{-1}{1}{-1}$,
and $x.\abcd{a}{b}{c}{d} = (ax + c)/(bx+d)$.

\item Compute the quotient vector space $M = V/R$.  This involves
``intelligent'' {\dblue sparse Gauss elimination} on a matrix with
$N+1$ columns.

\item Compute the matrix $T_2$ on $M$ given by
$$ [x]\mapsto [x.\abcd{1}{0}{0}{2}] + [x.\abcd{2}{0}{0}{1}] + [x.\abcd{2}{1}{0}{1}]
      + [x.\abcd{1}{0}{1}{2}].
$$
This matrix is unfortunately not sparse.
Similar recipe for matrices $T_n$ for any $n$.

\item Compute the {\dblue characteristic polynomial} $f$ of $T_2$. 

\item {\dblue Factor} $f = \prod g_i^{e_i}$.  Assume all $e_i=1$ (if not,
use a random  linear combination of the $T_n$.)

\item Compute the {\dblue kernels} $K_i=\ker(g_i(T_2))$.  The {\dblue eigenvalues}
of $T_3$, $T_5$, etc., acting on an {\dblue eigenvector} in $K_i$
give the coefficients $a_p$ of the newforms of level~$N$.
\end{enumerate}
}
}


\page{
\heading{Implementation}
\begin{itemize}
\item I implemented code for computing modular forms that's
included with \rd{MAGMA}:\\
{\tt http://magma.maths.usyd.edu.au/magma/}.

\item Unfortunately, MAGMA is expensive and closed source, so I'm
  reimplementing everything as part of \rd{SAGE}:\\
   {\tt http://modular.fas.harvard.edu/sage/}.

\item I'm teaching a \rd{course} on this topic at UCSD this Fall.

\item I'm finishing a \rd{book} on these algorithms that will be
  published by the American Mathematical Society.

\end{itemize}
}

\page{ \heading{The Modular Forms Database Project} 
{\small\begin{itemize}
\item  Create a database of all newforms of level $N$ for each $N<100000$.
This will require many gigabytes to store.  (50GB?)
\item So far this has only been done for $N<7000$ (and is incomplete),
  so $100000$ is a \rd{major challenge}.

\item  Involves sparse linear algebra over $\Q$ on spaces of
  dimension up to $200000$ and dense linear algebra on spaces
  of dimension up to $25000$.   

\item Easy to parallelize -- run one process for 
  each $N$.

\item Will be very useful to number theorists and cryptographers.

\item John Cremona has done something similar but only for the
  newforms corresponding to elliptic curves (he's at around 84000
  right now).
\end{itemize}
}
}

\end{document}



