private static uint MixHash(uint hash, uint data) { unchecked { uint lo16 = data & 0xFFFFu; uint hi16 = data >> 16; hash += lo16; hash ^= hash << 16; hash ^= hi16 << 11; hash += hash >> 11; return hash; } }