1. A method of accessing all data locations of a contiguous linear storage array before repeating an access to a data location, the array being of a size equal to a power of two, the method comprising: beginning with a current address of a location in said array, generating a next address of a location within said array, said generating comprising evaluating a function of the current address and data stored at the location corresponding to the current address, said function comprising a left shift of said current address by at least one bit and an insertion of at least one low-order bit; accessing data stored at a location in said array corresponding to said next address; and iterating said generating and said accessing.