This is a bugfix only version, after which a revamp of the cmph code and algorithms will be done.

- The CHD algorithm, which is an algorithm that can be tuned to generate MPHFs that require approximately 2.07 bits per key to be stored. The algorithm outperforms the BDZ algorithm and therefore is the fastest one available in the literature for sets that can be treated in internal memory.
- The CHD_PH algorithm, which is an algorithm to generate PHFs with load factor up to
*99 %*. It is actually the CHD algorithm without the ranking step. If we set the load factor to*81 %*, which is the maximum that can be obtained with the BDZ algorithm, the resulting functions can be stored in*1.40*bits per key. The space requirement increases with the load factor. - All reported bugs and suggestions have been corrected and included as well.

- An algorithm to generate MPHFs that require around 2.6 bits per key to be stored, which is referred to as BDZ algorithm. The algorithm is the fastest one available in the literature for sets that can be treated in internal memory.
- An algorithm to generate PHFs with range m = cn, for c > 1.22, which is referred to as BDZ_PH algorithm. It is actually the BDZ algorithm without the ranking step. The resulting functions can be stored in 1.95 bits per key for
*c = 1.23*and are considerably faster than the MPHFs generated by the BDZ algorithm. - An adapter to support a vector of struct as the source of keys has been added.
- An API to support the ability of packing a perfect hash function into a preallocated contiguous memory space. The computation of a packed function is still faster and can be easily mmapped.
- The hash functions djb2, fnv and sdbm were removed because they do not use random seeds and therefore are not useful for MPHFs algorithms.
- All reported bugs and suggestions have been corrected and included as well.

- Added man pages and a pkgconfig file.

- An algorithm to generate MPHFs that require less than 4 bits per key to be stored, which is referred to as FCH algorithm. The algorithm is only efficient for small sets.
- The FCH algorithm is integrated with BRZ algorithm so that you will be able to efficiently generate space-efficient MPHFs for sets in the order of billion keys.
- All reported bugs and suggestions have been corrected and included as well.

- A thread safe vector adapter has been added.
- A new algorithm for sets in the order of billion of keys that requires approximately 8.1 bits per key to store the resulting MPHFs.
- All reported bugs and suggestions have been corrected and included as well.

- Vector Adapter has been added.
- An optimized version of bmz (bmz8) for small set of keys (at most 256 keys) has been added.
- All reported bugs and suggestions have been corrected and included as well.

- New heuristic added to the bmz algorithm permits to generate a mphf with only
*24.80n + O(1)*bytes. The resulting function can be stored in*3.72n*bytes. click here for details.

Home | CHD | BDZ | BMZ | CHM | BRZ | FCH |

Enjoy!