This PR constitutes a substantial refactoring of the SA collector code. It simplifies the main function operator() significantly, and also fixes some bugs. The refactor also replaces the previous perfect-hash-function based index with a slower but much smaller frugal perfect-hash-function based index. It also replaces the default hash in the quasiindex (previously google's dense hash) with sparsepp, which has almost identical performance but uses much less space (and grows much more linearly with the number of keys).
This PR constitutes a substantial refactoring of the SA collector code. It simplifies the main function
operator()
significantly, and also fixes some bugs. The refactor also replaces the previous perfect-hash-function based index with a slower but much smaller frugal perfect-hash-function based index. It also replaces the default hash in the quasiindex (previously google's dense hash) with sparsepp, which has almost identical performance but uses much less space (and grows much more linearly with the number of keys).