Preface This is a graduate-level textbook about algorithms for computing with mod- ular forms. It is nontraditional in that the primary focus is not on underly- ing theory instead, it answers the question “how do you use a computer to explicitly compute spaces of modular forms?” This book emerged from notes for a course the author taught at Harvard University in 2004, a course at UC San Diego in 2005, and a course at the University of Washington in 2006. The author has spent years trying to find good practical ways to compute with classical modular forms for congruence subgroups of SL2(Z) and has implemented most of these algorithms several times, first in C++ [Ste99b], then in MAGMA [BCP97], and as part of the free open source computer algebra system SAGE (see [Ste06]). Much of this work has involved turning formulas and constructions buried in obscure research papers into precise computational recipes then testing these and eliminating inaccuracies. The author is aware of no other textbooks on computing with modular forms, the closest work being Cremona’s book [Cre97a], which is about computing with elliptic curves, and Cohen’s book [Coh93] about algebraic number theory. In this book we focus on how to compute in practice the spaces Mk(N, ε) of modular forms, where k ≥ 2 is an integer and ε is a Dirichlet character of modulus N (the appendix treats modular forms for higher rank groups). We spend the most effort explaining the general algorithms that appear so far to be the best (in practice!) for such computations. We will not dis- cuss in any detail computing with quaternion algebras, half-integral weight forms, weight 1 forms, forms for noncongruence subgroups or groups other xi

Purchased from American Mathematical Society for the exclusive use of nofirst nolast (email unknown) Copyright 2007 American Mathematical Society. Duplication prohibited. Please report unauthorized use to cust-serv@ams.org. Thank You! Your purchase supports the AMS' mission, programs, and services for the mathematical community.