wyhash is very impressive for those interested. Not sure why it doesn't get a lot of attention.
function mix(uint64 a, uint64 b) {
a ^= secret
b ^= seed
hi, lo = mul128(a, b)
seed = hi ^ lo
}
It's elegantly simple, but depends critically on 'secret' not appearing in the data.