From 336da838ce43edae40dd708dd465f1f43a2c312d Mon Sep 17 00:00:00 2001 From: Wiimm Date: Fri, 22 Sep 2023 17:19:28 +0200 Subject: SZS 2.38a --- project/src/liblzma/LzHash.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 project/src/liblzma/LzHash.h (limited to 'project/src/liblzma/LzHash.h') diff --git a/project/src/liblzma/LzHash.h b/project/src/liblzma/LzHash.h new file mode 100644 index 0000000..3b172eb --- /dev/null +++ b/project/src/liblzma/LzHash.h @@ -0,0 +1,34 @@ +/* LzHash.h -- HASH constants for LZ algorithms +2023-03-05 : Igor Pavlov : Public domain */ + +#ifndef ZIP7_INC_LZ_HASH_H +#define ZIP7_INC_LZ_HASH_H + +/* + (kHash2Size >= (1 << 8)) : Required + (kHash3Size >= (1 << 16)) : Required +*/ + +#define kHash2Size (1 << 10) +#define kHash3Size (1 << 16) +// #define kHash4Size (1 << 20) + +#define kFix3HashSize (kHash2Size) +#define kFix4HashSize (kHash2Size + kHash3Size) +// #define kFix5HashSize (kHash2Size + kHash3Size + kHash4Size) + +/* + We use up to 3 crc values for hash: + crc0 + crc1 << Shift_1 + crc2 << Shift_2 + (Shift_1 = 5) and (Shift_2 = 10) is good tradeoff. + Small values for Shift are not good for collision rate. + Big value for Shift_2 increases the minimum size + of hash table, that will be slow for small files. +*/ + +#define kLzHash_CrcShift_1 5 +#define kLzHash_CrcShift_2 10 + +#endif -- cgit v1.3.1