summaryrefslogtreecommitdiff
path: root/vendor/github.com/zeebo/xxh3/utils.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/zeebo/xxh3/utils.go')
-rw-r--r--vendor/github.com/zeebo/xxh3/utils.go129
1 files changed, 0 insertions, 129 deletions
diff --git a/vendor/github.com/zeebo/xxh3/utils.go b/vendor/github.com/zeebo/xxh3/utils.go
deleted file mode 100644
index a837e68a6..000000000
--- a/vendor/github.com/zeebo/xxh3/utils.go
+++ /dev/null
@@ -1,129 +0,0 @@
-package xxh3
-
-import (
- "math/bits"
- "unsafe"
-)
-
-// Uint128 is a 128 bit value.
-// The actual value can be thought of as u.Hi<<64 | u.Lo.
-type Uint128 struct {
- Hi, Lo uint64
-}
-
-// Bytes returns the uint128 as an array of bytes in canonical form (big-endian encoded).
-func (u Uint128) Bytes() [16]byte {
- return [16]byte{
- byte(u.Hi >> 0x38), byte(u.Hi >> 0x30), byte(u.Hi >> 0x28), byte(u.Hi >> 0x20),
- byte(u.Hi >> 0x18), byte(u.Hi >> 0x10), byte(u.Hi >> 0x08), byte(u.Hi),
- byte(u.Lo >> 0x38), byte(u.Lo >> 0x30), byte(u.Lo >> 0x28), byte(u.Lo >> 0x20),
- byte(u.Lo >> 0x18), byte(u.Lo >> 0x10), byte(u.Lo >> 0x08), byte(u.Lo),
- }
-}
-
-type (
- ptr = unsafe.Pointer
- ui = uintptr
-
- u8 = uint8
- u32 = uint32
- u64 = uint64
- u128 = Uint128
-)
-
-type str struct {
- p ptr
- l uint
-}
-
-func readU8(p ptr, o ui) uint8 {
- return *(*uint8)(ptr(ui(p) + o))
-}
-
-func readU16(p ptr, o ui) uint16 {
- b := (*[2]byte)(ptr(ui(p) + o))
- return uint16(b[0]) | uint16(b[1])<<8
-}
-
-func readU32(p ptr, o ui) uint32 {
- b := (*[4]byte)(ptr(ui(p) + o))
- return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24
-}
-
-func readU64(p ptr, o ui) uint64 {
- b := (*[8]byte)(ptr(ui(p) + o))
- return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |
- uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56
-}
-
-func writeU64(p ptr, o ui, v u64) {
- b := (*[8]byte)(ptr(ui(p) + o))
- b[0] = byte(v)
- b[1] = byte(v >> 8)
- b[2] = byte(v >> 16)
- b[3] = byte(v >> 24)
- b[4] = byte(v >> 32)
- b[5] = byte(v >> 40)
- b[6] = byte(v >> 48)
- b[7] = byte(v >> 56)
-}
-
-const secretSize = 192
-
-func initSecret(secret ptr, seed u64) {
- for i := ui(0); i < secretSize/16; i++ {
- lo := readU64(key, 16*i) + seed
- hi := readU64(key, 16*i+8) - seed
- writeU64(secret, 16*i, lo)
- writeU64(secret, 16*i+8, hi)
- }
-}
-
-func xxh64AvalancheSmall(x u64) u64 {
- // x ^= x >> 33 // x must be < 32 bits
- // x ^= u64(key32_000 ^ key32_004) // caller must do this
- x *= prime64_2
- x ^= x >> 29
- x *= prime64_3
- x ^= x >> 32
- return x
-}
-
-func xxhAvalancheSmall(x u64) u64 {
- x ^= x >> 33
- x *= prime64_2
- x ^= x >> 29
- x *= prime64_3
- x ^= x >> 32
- return x
-}
-
-func xxh64AvalancheFull(x u64) u64 {
- x ^= x >> 33
- x *= prime64_2
- x ^= x >> 29
- x *= prime64_3
- x ^= x >> 32
- return x
-}
-
-func xxh3Avalanche(x u64) u64 {
- x ^= x >> 37
- x *= 0x165667919e3779f9
- x ^= x >> 32
- return x
-}
-
-func rrmxmx(h64 u64, len u64) u64 {
- h64 ^= bits.RotateLeft64(h64, 49) ^ bits.RotateLeft64(h64, 24)
- h64 *= 0x9fb21c651e98df25
- h64 ^= (h64 >> 35) + len
- h64 *= 0x9fb21c651e98df25
- h64 ^= (h64 >> 28)
- return h64
-}
-
-func mulFold64(x, y u64) u64 {
- hi, lo := bits.Mul64(x, y)
- return hi ^ lo
-}