unhash.d
#kód
struct MurmurHash3_32 { import core.bitop; uint h; size_t len; private enum uint c1 = 0xcc9e2d51u; private enum uint c2 = 0x1b873593u; private enum uint n = 0xe6546b64u; void hash(uint k) { k *= c1; k = rol(k, 15); k *= c2; h ^= k; h = rol(h, 13); h = h * 5 + n; len += 4; } uint finish() { h ^= len; h ^= h >> 16; h *= 0x85ebca6b; // c3 h ^= h >> 13; h *= 0xc2b2ae35; // c4 h ^= h >> 16; return h; } }