aboutsummaryrefslogtreecommitdiff
path: root/internal/hash/hash_func.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2019-01-16 01:07:38 +0100
committerDimitri Sokolyuk <demon@dim13.org>2019-01-16 01:07:38 +0100
commitba25b16a8182e291b6bcc6e4c230a5178ee21ae8 (patch)
tree40eab63a22778b98e9b7323208e641e72aaa47d0 /internal/hash/hash_func.go
parent2603c5fa0799be938ce2979ac01ea72d7b9b6304 (diff)
add log2
Diffstat (limited to 'internal/hash/hash_func.go')
-rw-r--r--internal/hash/hash_func.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/internal/hash/hash_func.go b/internal/hash/hash_func.go
index 853412b..41c4fd5 100644
--- a/internal/hash/hash_func.go
+++ b/internal/hash/hash_func.go
@@ -1,9 +1,13 @@
package hash
+// defaultHash is Chris Torek's hash function
func defaultHash(key []byte) uint32 {
var h uint32
for _, v := range key {
- h = (h << 5) + h + uint32(v)
+ 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) }