I have a question regarding enumeration of perfect lattices/quadratic forms. In the thesis of Achill Schürmann <http://fma2.math.uni-magdeburg.de/~achill/public/habil.pdf> there is an algorithm called "Voronoi's algorithm" in chapter 3, used to enumerate arithmetically inequivalent perfect quadratic forms (meaning the forms cannot be obtained one from another by scaling with a constant or applying a unimodular transformation, where the latter corresponds to a change in the basis of the lattice associated to a certain quadratic form). It is denoted as Algorithm 1 in the thesis, and is on page 49. I wonder how this algorithm can stop? I suspect that the bound on a quadratic form developed at the end of the proof of Theorem 3.1.3.2 on page 48 is used to have a stopping condition. That bound basically says that all inequivalent quadratic forms have a bounded trace depending only on the dimension and the minimum distance. I wonder whether anyone knows how this algorithm can stop? Also, in a lattice problem that I have, the upper bound I have developed is much lower than the one presented in the end of the proof of Theorem 3.1.3.2 for high dimensions, so then I'm wondering whether Voronoi's algorithm can be efficient for enumerating all perfect forms for my problem? Is it so that the bottleneck of that enumeration algorithm is that it is hard to find extreme rays of polytopes in high dimensions? In that case, it might not be efficient for my problem too. Is there a faster algorithm than Voronoi's? Grateful for any comments.



Enumerating Perfect Lattices
The algorithm stops when you don't get any more perfect forms. Specifically, at each step you determine all the contiguous forms $Q\_i$ and test whether they are equivalent to forms you already knew. For all the ones that aren't, you add them to the list and iterate to determine all the forms contiguous to them, etc., so your list keeps getting longer and longer. At some point all of the contiguous forms will already be on the list, and then you are done.


Theorem 3.1.3.2 shows that there are only finitely many perfect forms, so the algorithm must eventually terminate, but the specific bound is not used in the algorithm.


You are right that finding extreme rays of polytopes in high dimensions is the bottleneck. To deal with the 8-dimensional case, you need to take advantage of all available symmetries (see Appendix A), and 9 dimensions has not been completed.


