Data.Digest.Murmur32

murmur-hash-0.1.0.2: MurmurHash2 implementation for Haskell.

Portability | portable
Stability | experimental
Maintainer | nominolo@gmail.com

Data.Digest.Murmur32

Description

Type class and primitives for constructing 32 bit hashes using the MurmurHash2 algorithm. See http://murmurhash.googlepages.com for details on MurmurHash2.

Synopsis

- data Hash32
- asWord32 :: Hash32 -> Word32
- class Hashable32 a where
  - hash32Add :: a -> Hash32 -> Hash32
- hash32AddWord32 :: Word32 -> Hash32 -> Hash32
- hash32AddInt :: Int -> Hash32 -> Hash32
- hash32 :: Hashable32 a => a -> Hash32
- hash32WithSeed :: Hashable32 a => Word32 -> a -> Hash32

# Documentation

data Hash32

A 32 bit hash.

Instances

Bounded Hash32 |
Eq Hash32 |
Ord Hash32 |
Show Hash32 |

asWord32 :: Hash32 -> Word32

Extract 32 bit word from hash.

class Hashable32 a where

Instance for

Methods

hash32Add :: a -> Hash32 -> Hash32

Instances

Hashable32 Bool |
Hashable32 Char |
Hashable32 Int |
Hashable32 Integer |
Hashable32 Word32 |
Hashable32 () |
Hashable32 a => Hashable32 [a] |
Hashable32 a => Hashable32 (Maybe a) |
(Hashable32 a, Hashable32 b) => Hashable32 (Either a b) |
(Hashable32 a, Hashable32 b) => Hashable32 (a, b) |
(Hashable32 a, Hashable32 b, Hashable32 c) => Hashable32 (a, b, c) |
(Hashable32 a, Hashable32 b, Hashable32 c, Hashable32 d) => Hashable32 (a, b, c, d) |

hash32AddWord32 :: Word32 -> Hash32 -> Hash32

hash32AddInt :: Int -> Hash32 -> Hash32

hash32 :: Hashable32 a => a -> Hash32

Create a hash using the default seed.

hash32WithSeed :: Hashable32 a => Word32 -> a -> Hash32

Create a hash using a custom seed.

The seed should be non-zero, but other than that can be an arbitrary number. Different seeds will give different hashes, and thus (most likely) different hash collisions.