Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Implements the specialized hash function for this perfect hashing algorithm.
C code that makes use of the perfect hash table output must exactly
re-implement this hash
function.
- primeFNV :: Int
- class ToHashableChunks a where
- hash :: ToHashableChunks a => Int -> a -> Int
Documentation
This choice of prime number 0x01000193
was taken from the Python implementation
on Steve Hanov's page.
class ToHashableChunks a where Source #
Mechanism for a key to be decomposed into units processable by the FNV-1a hashing algorithm.
toHashableChunks :: a -> [Int] Source #
:: ToHashableChunks a | |
=> Int | nonce |
-> a | key |
-> Int |
Uses the "FNV-1a" algorithm from the FNV website:
hash = offset_basis for each octet_of_data to be hashed hash = hash xor octet_of_data hash = hash * FNV_prime return hash
The interface is comparable to the
hashWithSalt
function from the hashable
package.