github.com/segmentio/parquet-go@v0.0.0-20230712180008-5d42db8f0d47/bloom/xxhash/sum64uint.go (about) 1 package xxhash 2 3 func Sum64Uint8(v uint8) uint64 { 4 h := prime5 + 1 5 h ^= uint64(v) * prime5 6 return avalanche(rol11(h) * prime1) 7 } 8 9 func Sum64Uint16(v uint16) uint64 { 10 h := prime5 + 2 11 h ^= uint64(v&0xFF) * prime5 12 h = rol11(h) * prime1 13 h ^= uint64(v>>8) * prime5 14 h = rol11(h) * prime1 15 return avalanche(h) 16 } 17 18 func Sum64Uint32(v uint32) uint64 { 19 h := prime5 + 4 20 h ^= uint64(v) * prime1 21 return avalanche(rol23(h)*prime2 + prime3) 22 } 23 24 func Sum64Uint64(v uint64) uint64 { 25 h := prime5 + 8 26 h ^= round(0, v) 27 return avalanche(rol27(h)*prime1 + prime4) 28 } 29 30 func Sum64Uint128(v [16]byte) uint64 { 31 h := prime5 + 16 32 h ^= round(0, u64(v[:8])) 33 h = rol27(h)*prime1 + prime4 34 h ^= round(0, u64(v[8:])) 35 h = rol27(h)*prime1 + prime4 36 return avalanche(h) 37 }