4 ms·
Most non-CS hashes should have two parts: 1. A permutation that does as much as possible of the actual bit-mixing and 2. The simplest compression rule possibl
by AlotOfReading 10d ago
Most non-CS hashes should have two parts:
1. A permutation that does as much as possible of the actual bit-mixing and
2. The simplest compression rule possible, though combining can be tricky.
Good permutations are much easier to design than good hashes, and one of the main ways hash functions are used is consuming integers smaller than the state space. May as well take advantage of provably ideal behavior.
- thomasahle 10d agoYes, a good example is tabulation hashes which is h(x1, x2, ...) = T[1, x1] ^ T[2, x2] ^ ... but most fast hashes are actually algebraic, typically using polynomials in some way. I'm not sure they fit into the same pattern?