From: Stella Lau Date: Wed, 26 Jul 2017 23:43:25 +0000 (-0700) Subject: Allow HASH_ONLY_EVERY_LOG to be configured in ldm.h X-Git-Tag: v1.3.1^2~12^2~7^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9eaf3d22d0818fc977b7df6af4ce78654613a97e;p=thirdparty%2Fzstd.git Allow HASH_ONLY_EVERY_LOG to be configured in ldm.h --- diff --git a/contrib/long_distance_matching/Makefile b/contrib/long_distance_matching/Makefile index 8bc7ac478..4193cb323 100644 --- a/contrib/long_distance_matching/Makefile +++ b/contrib/long_distance_matching/Makefile @@ -32,6 +32,6 @@ ldm: ldm_common.c ldm.c main.c clean: @rm -f core *.o tmp* result* *.ldm *.ldm.dec \ - ldm + ldm @echo Cleaning completed diff --git a/contrib/long_distance_matching/ldm.c b/contrib/long_distance_matching/ldm.c index 9a8438383..25bf5c838 100644 --- a/contrib/long_distance_matching/ldm.c +++ b/contrib/long_distance_matching/ldm.c @@ -16,11 +16,11 @@ #define LDM_HASH_ENTRY_SIZE_LOG 2 #endif -// Force the "probability" of insertion to be some value. // Entries are inserted into the table HASH_ONLY_EVERY + 1 times "on average". +#ifndef HASH_ONLY_EVERY_LOG + #define HASH_ONLY_EVERY_LOG (LDM_WINDOW_SIZE_LOG-((LDM_MEMORY_USAGE)-(LDM_HASH_ENTRY_SIZE_LOG))) +#endif -//#define HASH_ONLY_EVERY_LOG 7 -#define HASH_ONLY_EVERY_LOG (LDM_WINDOW_SIZE_LOG-((LDM_MEMORY_USAGE)-(LDM_HASH_ENTRY_SIZE_LOG))) #define HASH_ONLY_EVERY ((1 << (HASH_ONLY_EVERY_LOG)) - 1) #define HASH_BUCKET_SIZE (1 << (HASH_BUCKET_SIZE_LOG)) diff --git a/contrib/long_distance_matching/ldm.h b/contrib/long_distance_matching/ldm.h index 38d240152..af35130eb 100644 --- a/contrib/long_distance_matching/ldm.h +++ b/contrib/long_distance_matching/ldm.h @@ -3,7 +3,7 @@ #include "mem.h" // from /lib/common/mem.h -// #include "ldm_params.h" +//#include "ldm_params.h" // ============================================================================= // Modify the parameters in ldm_params.h if "ldm_params.h" is included. @@ -23,7 +23,7 @@ #define LDM_LAG 0 // The maximum window size when searching for matches. - // The maximum value is 30. + // The maximum value is 30 #define LDM_WINDOW_SIZE_LOG 28 // The minimum match length. @@ -47,6 +47,13 @@ // Output the configuration. #define OUTPUT_CONFIGURATION +// If defined, forces the probability of insertion to be approximately +// one per (1 << HASH_ONLY_EVERY_LOG). If not defined, the probability will be +// calculated based on the memory usage and window size for "even" insertion +// throughout the window. + +// #define HASH_ONLY_EVERY_LOG 8 + // ============================================================================= // The number of bytes storing the compressed and decompressed size