This is an algorithm for a hash table that expands automatically and lazily as needed to maintain a desired load factor in each hash bucket. It does not require any re-hashing or re-bucketing as part of expansion, in some cases the expansion is as simple as adding another bit to a mask. It does require the use of a good hash function for your data domain.