3 #define HASH_SIZE (unsigned)(1<<HASH_BITS)
4 #define HASH_MASK (HASH_SIZE-1)
5 #define H_SHIFT ((HASH_BITS+MIN_MATCH-1)/MIN_MATCH)
8 void UPDATE_HASH(unsigned *h, unsigned c) {
9 *h = (((*h) << H_SHIFT) ^ (c)) & HASH_MASK;
12 static unsigned ins_h = 123;
13 static const char *window = "Hello Test";
19 for(j = 0; j < MIN_MATCH-1; j++)
20 UPDATE_HASH(&ins_h, window[j]);
24 printf("Result: %d\n", ins_h);