Summary/Excerpts of (and not a substitute for) the GNU Free Documentation License:
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
to read the full license.
Terms and Conditions:
William Stein wrote:The text of this book is licensed under the GNU Free Documentation License, Version 1.2, November 2002. This means that you may freely copy this book. For the precise details, see the Appendix.
This is a book about algorithms for computing with modular forms
. It was written for a graduate course at Harvard University
. This book is meant to answer the question "How do you compute spaces of modular forms", which theoretical mathematicians often asked, and to provide a rigorous foundation for the specific algorithms used by the author, some of which have until now never been formally stated or proven to be correct.
The book tries to find the best ways to compute with classical modular forms for congruence subgroups of SL2(Z), and how to implement most of these algorithms. Much of this work has involved turning formulas and constructions burried in books and papers into precise computable recipes, then testing these in many cases and eliminating subtle inaccuracies (published theorems often contain very small mistakes that are greatly magnified when implemented and run on a computer). The goal of this book is to explain the results, and also describe unsolved problems whose solution would move the theory forward.
At the time this book was written, there were no other books on computing with modular forms, the closest work being Cremona's book
, which is about computing with elliptic curves, and Cohen's book
about algebraic number theory. This field is not mature, and there are some missing details and potential improvements to many of the algorithms, which the reader might fill in, and which would be greatly appreciated by other mathematicians. Also, it seems that nobody has tried to analyze the formal complexity of any of the algorithms in this book (the author intends to do this as he writes the book) again this is somewhere the reader might contribute.
The reader is not assumed to have prior exposure to modular forms, but should have a firm grasp of abstract algebra, and be familiar with algebraic number theory, geometry of curves, algebraic topology of Riemann surfaces
, and complex analysis. For Chapter 10, the reader should be familiar with the Python