|
21 | 21 | #include "../common/threading.h" |
22 | 22 | #include "cover.h" |
23 | 23 | #include "../common/zstd_internal.h" /* includes zstd.h */ |
| 24 | +#include "../compress/zstd_compress_internal.h" /* ZSTD_hash*() */ |
24 | 25 | #ifndef ZDICT_STATIC_LINKING_ONLY |
25 | 26 | #define ZDICT_STATIC_LINKING_ONLY |
26 | 27 | #endif |
@@ -75,25 +76,16 @@ static clock_t g_time = 0; |
75 | 76 |
|
76 | 77 |
|
77 | 78 | /*-************************************* |
78 | | -* Hash Functions (matching zstd_compress_internal.h) |
| 79 | +* Hash Functions |
79 | 80 | ***************************************/ |
80 | | -static const U64 FASTCOVER_prime6bytes = 227718039650203ULL; |
81 | | -static size_t FASTCOVER_hash6(U64 u, U32 h) { return (size_t)(((u << (64-48)) * FASTCOVER_prime6bytes) >> (64-h)) ; } |
82 | | -static size_t FASTCOVER_hash6Ptr(const void* p, U32 h) { return FASTCOVER_hash6(MEM_readLE64(p), h); } |
83 | | - |
84 | | -static const U64 FASTCOVER_prime8bytes = 0xCF1BBCDCB7A56463ULL; |
85 | | -static size_t FASTCOVER_hash8(U64 u, U32 h) { return (size_t)(((u) * FASTCOVER_prime8bytes) >> (64-h)) ; } |
86 | | -static size_t FASTCOVER_hash8Ptr(const void* p, U32 h) { return FASTCOVER_hash8(MEM_readLE64(p), h); } |
87 | | - |
88 | | - |
89 | 81 | /** |
90 | | - * Hash the d-byte value pointed to by p and mod 2^f |
| 82 | + * Hash the d-byte value pointed to by p and mod 2^f into the frequency vector |
91 | 83 | */ |
92 | | -static size_t FASTCOVER_hashPtrToIndex(const void* p, U32 h, unsigned d) { |
| 84 | +static size_t FASTCOVER_hashPtrToIndex(const void* p, U32 f, unsigned d) { |
93 | 85 | if (d == 6) { |
94 | | - return FASTCOVER_hash6Ptr(p, h) & ((1 << h) - 1); |
| 86 | + return ZSTD_hash6Ptr(p, f); |
95 | 87 | } |
96 | | - return FASTCOVER_hash8Ptr(p, h) & ((1 << h) - 1); |
| 88 | + return ZSTD_hash8Ptr(p, f); |
97 | 89 | } |
98 | 90 |
|
99 | 91 |
|
|
0 commit comments