
2009/6/16 Milosz Marian HULBOJ <mhulboj@hulboj.org>:
Seems sound, but it would be good to list the typical use cases and work out the best generic interface for them. So far we have got following basic cases:
Independent case:
A simple case with distinct and independent hash functions that can be evaluated separately: h_1(x), h_2(x), h_3(x), ...
Dependent cases:
B case when from one hash value (i.e. 64bit) we can get multiple hash values (i.e. 4*16bit): h(x) -> {h_1(x), h_2(x), h_3(x), ...}
C hash_combine - one hash function and the combining method
D double-hashing schema (http://www.eecs.harvard.edu/~kirsch/pubs/bbbf/esa06.pdf) h_i(x) = h_1(x) + i*h_2(x) + optional In this schema one can provide: - two different hash functions (A) - one hash function and use approach (B) - use one hash function and do something along hash_combine (C)
other, less popular (?)
Your listing of methods is really interesting.... Manuel Fiorelli