Preface xiii

main focus of this chapter is a detailed study of how to explicitly represent

and compute with Dirichlet characters.

Chapter 5 is about how to explicitly construct the Eisenstein subspace

of modular forms. First we define generalized Bernoulli numbers attached to

a Dirichlet character and an integer then explain a new analytic algorithm

for computing them (which generalizes the algorithm in Chapter 2). Finally

we give without proof an explicit description of a basis of Eisenstein series,

explain how to compute it, and give some examples.

Chapter 6 records a wide range of dimension formulas for spaces of

modular forms, along with a few remarks about where they come from and

how to compute them.

Chapter 7 is about linear algebra over exact fields, mainly the rational

numbers. This chapter can be read independently of the others and does not

require any background in modular forms. Nonetheless, this chapter occu-

pies a central position in this book, because the algorithms in this chapter

are of crucial importance to any actual implementation of algorithms for

computing with modular forms.

Chapter 8 is the most important chapter in this book; it generalizes

Chapter 3 to higher weight and general level. The modular symbols for-

mulation described here is central to general algorithms for computing with

modular forms.

Chapter 9 applies the algorithms from Chapter 8 to the problem of

computing with modular forms. First we discuss decomposing spaces of

modular forms using Dirichlet characters, and then explain how to compute

a basis of Hecke eigenforms for each subspace using several approaches.

We also discuss congruences between modular forms and bounds needed to

provably generate the Hecke algebra.

Chapter 10 is about computing analytic invariants of modular forms.

It discusses tricks for speeding convergence of certain infinite series and

sketches how to compute every elliptic curve over Q with given conductor.

Chapter 11 contains detailed solutions to most of the exercises in this

book. (Many of these were written by students in a course taught at the

University of Washington.)

Appendix A deals with computational techniques for working with gen-

eralizations of modular forms to more general groups than SL2(Z), such as

SLn(Z) for n ≥ 3. Some of this material requires more prerequisites than

the rest of the book. Nonetheless, seeing a natural generalization of the

material in the rest of this book helps to clarify the key ideas. The topics in

the appendix are directly related to the main themes of this book: modular