sprintf(final->line[0], " unsigned long rsl = (a ^ scramble[tab[b]]);\n");
}
- printf("success, found a perfect hash\n");
-
free((void *)tabq);
free((void *)tabh);
}
continue; /* two keys have same (a,b) pair */
}
- printf("found distinct (A,B) on attempt %ld\n", trysalt);
-
/* Given distinct (A,B) for all keys, build a perfect hash */
if (!perfect(*tabb, *tabh, tabq, *blen, *smax, scramble, nkeys, form))
{
break;
}
- printf("built perfect hash table of size %ld\n", *blen);
-
/* free working memory */
free((void *)tabq);
}
/* read in the list of keywords */
getkeys(&keys, &nkeys, textroot, keyroot, form);
- printf("Read in %ld keys\n",nkeys);
/* find the hash */
findhash(&tab, &alen, &blen, &salt, &final,
/* generate the phash.c file */
make_c(tab, smax, blen, scramble, &final, form);
- printf("Wrote phash.c\n");
/* clean up memory sources */
refree(textroot);
refree(keyroot);
free((void *)tab);
- printf("Cleaned up\n");
}