In May of 2012, mathematics lost one of the greats when Friedrich Hirzebruch passed away. Hirzebruch’s best known work is probably his generalization of the Riemann-Roch Theorem (fittingly called the Hirzebruch-Riemann-Roch Theorem), but he is also credited as one of the founders of topological K-theory as well as a major player in the world of Hilbert Modular Surfaces. While the timing is likely a coincidence, it is fitting that shortly after his passing Springer Verlag published the third edition of Wolfgang Ebeling’s book *Lattices and Codes: A Course Partially Based on Lectures by Friedrich Hirzebruch*.

As its title suggests, Ebeling’s book evolved out of a course that Hirzebruch gave in 1988 and 1989 in Eindhoven. As Ebeling writes in his introduction, “the aim of this course was to discuss the relations between lattices and codes and to provide all the necessary prerequisites and examples.” Ebeling has taken notes from this course and added some topics while removing others, and put together a book that will be very suitable for graduate students who want to learn the field. The prerequisites are topics in algebra and complex analysis that most students will learn early in their graduate career, and Ebeling does a wonderful job of including examples — and a handful of exercises — as well as sprinkling pieces of the history and philosophy of the subject in between the theorems and proofs. Since the field has continued to evolve in the 25 years since Hirzebruch’s course, Ebeling has taken the opportunity of the third edition to update some of the mathematics (in at least one place he discusses a theorem that was posed as an open question in an earlier edition of the book) as well as make corrections in several places.

So what is the book about? At its most general, coding theory refers to the areas of mathematics and computer science related to the transmission of information and how to do this in ways that are both efficient and have built-in redundancies that will allow for the correction of errors. As the field has evolved over the last three quarters of a century, it has used a wide variety of techniques from all throughout mathematics, including linear algebra, number theory, combinatorics and geometry. (In fact, this reviewer notes that at the upcoming MathFest 2013 there is an entire session of talks entitled “Coding Theory And…” exploring the range of mathematics that is used in the field). In the book under review, Ebeling explores the mathematical theory of lattices and the ways that it is used by coding theorists.

Typically when we talk about lattices we are referring to discrete subgroups of n-dimensional Euclidean space with compact quotients. There is a well-established connection between these objects and coding theory — in particular, there is a fundamental correspondence between self-dual binary linear codes of length n and unimodular lattices in n-dimensional space. If these are objects you have never worked with before, or if those words are unfamiliar to you, have no fear: *Lattices and Codes* starts with a very elementary chapter that introduces all of the relevant definitions and basic theorems about lattices as well as discussing the fundamental correspondence. A good amount of attention is given to the extended Hamming code, and generalizations of the lattices that it corresponds to called “root lattices,” which are lattices generated by the set of elements x so that x^{2}=2. The latter half of Chapter 1 of Ebeling’s book deals with classifying all root lattices and proving which of them correspond to codes.

The second chapter of the book gets somewhat more technical, as Ebeling introduces theta functions on lattices and weight enumerators on codes. This involves introducing the concepts of modular forms (and, I must admit, had me pulling some other texts off my shelf for a deeper reminder of how those topics work than Ebeling himself gives). Some of the punchlines of this chapter include proving the existence and uniqueness of a doubly even self-dual code of length 24 with no codewords of weight four, the MacWilliams identity relating the weight enumerator of a code and its dual, and the introduction of quadratic residue codes.

Two more chapters are concerned with even unimodular lattices — those lattices that have determinant equal to one and have x^{2} even for all elements x. In particular, Chapter 3 gives a description of the root systems of such lattices and shows how this can be used to prove a theorem of Niemeier that there are exactly 24 even unimodular lattices in **R**^{24} and they can all be described in terms of their root sublattices. The fourth chapter focuses on one of these lattices in particular, called the Leech lattice, which is intimately connected with problems in sphere-packing, making it important in the world of coding theory. Ebeling discusses these results as well as the automorphisms of the Leech lattice as originally explored by Conway, Parker, and Sloane, leading to the discovery of three new sporadic groups.

While the first four chapters of the book concern themselves almost exclusively with binary codes of 1s and 0s, a final chapter generalizes some of the results seen earlier to codes defined over the field **F**_{p}, where p is an odd prime. In this situation, one works with lattices over the integers of cyclotomic fields, and results from algebraic number theory are needed. The author does a very nice job of introducing the relevant background needed to understand Kloosterman’s work on what a theta function should look like in this setting, and how this relates to the theory of Hilbert modular forms. Some results of van der Geer and Hirzebruch, including the “Theorem of Alpbach” whose name derives from the Austrian location where it was proven, are discussed at length and the author then gives special attention to the cases where p = 3 and 5. Things are done very explicitly with pictures, and this reviewer found the exposition very clear.

In summary, I very much enjoyed reading Ebeling’s book. I was familiar with some of the topics it contained before I read it, but was far from an expert. This book contains some exciting mathematics, and I would recommend it to a graduate student or faculty member looking to learn about the field.

Darren Glass is an Associate Professor of Mathematics at Gettysburg College, whose main research interests include Galois theory, number theory, and cryptography. He can be reached at dglass@gettysburg.edu.