Double Hashing: we use a secondary hash function . If maps some key to a cell with , that is already occupied, then we iteratively try the buckets:

Where .

The secondary hash function cannot have zero values. The table size must be prime to allow probing of all of the cells.

A common choice of compression function for the secondary hash function:

Where and is prime.