aboutsummaryrefslogtreecommitdiff
path: root/internal/hash/hash_func.go
blob: 41c4fd592d543861d6a2f91964a6951266d51274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
package hash

// defaultHash is Chris Torek's hash function
func defaultHash(key []byte) uint32 {
	var h uint32
	for _, v := range key {
		h = hash4b(h, v)
	}
	return h
}

func hash4a(h uint32, v byte) uint32 { return (h << 5) - h + uint32(v) }
func hash4b(h uint32, v byte) uint32 { return (h << 5) + h + uint32(v) }