Commit 38879fa6 authored by Geoff Simmons's avatar Geoff Simmons

For PH, all-odd keys in the vector are not necessary.

parent 3baf5288
......@@ -207,14 +207,8 @@ PH_Generate(char * const * const strings, unsigned n)
h1->minlen = min;
h1->maxlen = max;
h1->l = l;
/*
* XXX the literature sometimes says that the keys should all be
* odd, since repeated multiplication makes the result tend to 0,
* but sometimes doesn't mention it. Not sure if |1 is needed
* here.
*/
for (unsigned i = 0; i < l; i++)
h1->k[i] = rnd64() | 1;
h1->k[i] = rnd64();
h1->mask = sz - 1;
for (unsigned i = 0; i < n; i++) {
......@@ -283,9 +277,8 @@ PH_Generate(char * const * const strings, unsigned n)
if (bhsh->k == NULL)
goto exit;
bhsh->addend = rnd64();
/* XXX as above, unsure about |1 here */
for (unsigned j = 0; j < bhsh->l; j++)
bhsh->k[j] = rnd64() | 1;
bhsh->k[j] = rnd64();
for (int j = 0; j < bucket->n; j++) {
uint32_t h = hash(bhsh, strings[bucket->idx[j]],
......@@ -297,7 +290,7 @@ PH_Generate(char * const * const strings, unsigned n)
bsz * sizeof(*bhsh->tbl));
bhsh->addend = rnd64();
for (unsigned k = 0; k < bhsh->l; k++)
bhsh->k[k] = rnd64() | 1;
bhsh->k[k] = rnd64();
continue;
}
bhsh->tbl[h] = bucket->idx[j];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment