diff options
author | 2024-08-19 10:13:46 +0000 | |
---|---|---|
committer | 2024-08-19 10:13:46 +0000 | |
commit | 6ff8376d96f094daacf62decf2ee7ff602c2d531 (patch) | |
tree | 0b0ad45951ef1aae841384fd550e01b44f4cba76 /vendor/github.com/klauspost/compress/zstd/hash.go | |
parent | [bugfix] permit unspecified orientation data (#3205) (diff) | |
download | gotosocial-6ff8376d96f094daacf62decf2ee7ff602c2d531.tar.xz |
[chore]: Bump github.com/prometheus/client_golang from 1.19.1 to 1.20.0 (#3210)
Diffstat (limited to 'vendor/github.com/klauspost/compress/zstd/hash.go')
-rw-r--r-- | vendor/github.com/klauspost/compress/zstd/hash.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/klauspost/compress/zstd/hash.go b/vendor/github.com/klauspost/compress/zstd/hash.go new file mode 100644 index 000000000..5d73c21eb --- /dev/null +++ b/vendor/github.com/klauspost/compress/zstd/hash.go @@ -0,0 +1,35 @@ +// Copyright 2019+ Klaus Post. All rights reserved. +// License information can be found in the LICENSE file. +// Based on work by Yann Collet, released under BSD License. + +package zstd + +const ( + prime3bytes = 506832829 + prime4bytes = 2654435761 + prime5bytes = 889523592379 + prime6bytes = 227718039650203 + prime7bytes = 58295818150454627 + prime8bytes = 0xcf1bbcdcb7a56463 +) + +// hashLen returns a hash of the lowest mls bytes of with length output bits. +// mls must be >=3 and <=8. Any other value will return hash for 4 bytes. +// length should always be < 32. +// Preferably length and mls should be a constant for inlining. +func hashLen(u uint64, length, mls uint8) uint32 { + switch mls { + case 3: + return (uint32(u<<8) * prime3bytes) >> (32 - length) + case 5: + return uint32(((u << (64 - 40)) * prime5bytes) >> (64 - length)) + case 6: + return uint32(((u << (64 - 48)) * prime6bytes) >> (64 - length)) + case 7: + return uint32(((u << (64 - 56)) * prime7bytes) >> (64 - length)) + case 8: + return uint32((u * prime8bytes) >> (64 - length)) + default: + return (uint32(u) * prime4bytes) >> (32 - length) + } +} |