This directory contains some sample hash functions generated by mph.

To test them, type

	% make
	% ./gplus <gplus.in
	% ./pascal <pascal.in

To regenerate them "slowly", type

	% mph -d2 -m1 -c1.12 <gplus.in 2>/dev/null | emitc -s >gplus.c
	% mph -d2 -m1 -c1.05 <pascal.in 2>/dev/null | emitc -s >pascal.c

The regenerated hash functions should have the same (data) size as the
originals. The "2>/dev/null" omits messages sent to stderr by mph after
each failed iteration - it may take quite a few iterations to regenerate
each of the hash functions.

To regenerate them "quickly", type

	% mph -l <gplus.in | emitc -s >gplus.c
	% mph -l <pascal.in | emitc -s >pascal.c

The regenerated hash functions will be larger than the originals. This is
your classic space vs time tradeoff.

Note that mph can also generate hash functions for much larger key sets.
For example, assuming that you have a dictionary in the file
/usr/lib/ispell/ispell.words, try the following

	% mph -l </usr/lib/ispell/ispell.words | emitc >hash.c
	% make tst
	% ./tst </usr/lib/ispell/ispell.words
