The clustering algorithm requires a very large, fixed set of curves.1 I wrote the initial curve generation by building a gigantic list of parameter tuples, and then processing the list into records. Once the ���search space��� grew beyond a trivial size, the program began to eat enormous amounts of memory. The problem was that I was trying to write the generation code as clearly as possible, and that created a massive thicket of objects that all resided in memory simultaneously.