xii Preface

than GL2, Hilbert and Siegel modular forms, trace formulas, p-adic modular

forms, and modular abelian varieties, all of which are topics for additional

books. We also rarely analyze the complexity of the algorithms, but instead

settle for occasional remarks about their practical eﬃciency.

For most of this book we assume the reader has some prior exposure to

modular forms (e.g., [DS05]), though we recall many of the basic defini-

tions. We cite standard books for proofs of the fundamental results about

modular forms that we will use. The reader should also be familiar with

basic algebraic number theory, linear algebra, complex analysis (at the level

of [Ahl78]), and algorithms (e.g., know what an algorithm is and what big

oh notation means). In some of the examples and applications we assume

that the reader knows about elliptic curves at the level of [Sil92].

Chapter 1 is foundational for the rest of this book. It introduces congru-

ence subgroups of SL2(Z) and modular forms as functions on the complex

upper half plane. We discuss q-expansions, which provide an important

computational handle on modular forms. We also study an algorithm for

computing with congruence subgroups. The chapter ends with a list of ap-

plications of modular forms throughout mathematics.

In Chapter 2 we discuss level 1 modular forms in much more detail. In

particular, we introduce Eisenstein series and the cusp form Δ and describe

their q-expansions and basic properties. Then we prove a structure theorem

for level 1 modular forms and use it to deduce dimension formulas and give

an algorithm for explicitly computing a basis. We next introduce Hecke

operators on level 1 modular forms, prove several results about them, and

deduce multiplicativity of the Ramanujan τ function as an application. We

also discuss explicit computation of Hecke operators. In Section 2.6 we make

some brief remarks on recent work on asymptotically fast computation of

values of τ. Finally, we describe computation of constant terms of Eisenstein

series using an analytic algorithm. We generalize many of the constructions

in this chapter to higher level in subsequent chapters.

In Chapter 3 we turn to modular forms of higher level but restrict for

simplicity to weight 2 since much is clearer in this case. (We remove the

weight restriction later in Chapter 8.) We describe a geometric way of view-

ing cuspidal modular forms as differentials on modular curves, which leads

to modular symbols, which are an explicit way to present a certain homol-

ogy group. This chapter closes with methods for explicitly computing cusp

forms of weight 2 using modular symbols, which we generalize in Chapter 9.

In Chapter 4 we introduce Dirichlet characters, which are important

both in explicit construction of Eisenstein series (in Chapter 5) and in de-

composing spaces of modular forms as direct sums of simpler spaces. The