aboutsummaryrefslogtreecommitdiff
path: root/internal/hash/func.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2019-01-16 02:01:09 +0100
committerDimitri Sokolyuk <demon@dim13.org>2019-01-16 02:01:09 +0100
commita09cffcde579451343e9ab9a614cf6a9b65ed812 (patch)
tree95f33a1cc2da03319e6cab644aea8a4dff255e01 /internal/hash/func.go
parent3743e23f4054d34a03f88105e79521154bc5c3d3 (diff)
rename
Diffstat (limited to 'internal/hash/func.go')
-rw-r--r--internal/hash/func.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/hash/func.go b/internal/hash/func.go
new file mode 100644
index 0000000..41c4fd5
--- /dev/null
+++ b/internal/hash/func.go
@@ -0,0 +1,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) }