GCC, bizarrely, does not seem to compile methods in templates that go unused. The getError method of the FloatingAverage<T> template class has an obvious coding mistake, but compiling it with GCC never revealed this because getError is never called in the library. Clang 3.1, however, seems to be somewhat more conservative about this; it flags an error anyway. Because this method is unused, I just removed it.
For some reason, Python isn't GCing the Pyrex Fingerprinter objects, so the __del__ method isn't getting called. This means that all the buffers weren't being freed, which caused a massive memory leak after each invocation of the fingerprinter.