Allow HASH_ONLY_EVERY_LOG to be configured in ldm.h

dev
Stella Lau 2017-07-26 16:43:25 -07:00
parent 40759bade9
commit 9eaf3d22d0
3 changed files with 13 additions and 6 deletions

View File

@ -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

View File

@ -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))

View File

@ -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