perfect-hash-generator-0.2.0.6: Perfect minimal hashing implementation in native Haskell

Safe HaskellSafe
LanguageHaskell2010

Data.PerfectHash.Hashing

Description

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.

Synopsis

Documentation

primeFNV :: Int Source #

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.

Minimal complete definition

toHashableChunks

Methods

toHashableChunks :: a -> [Int] Source #

hash Source #

Arguments

:: 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.