murmur-hash-0.1.0.10: MurmurHash2 implementation for Haskell.
Copyright(c) Thomas Schilling 2010
LicenseBSD-style
Maintainernominolo@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Digest.Murmur64

Description

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

Synopsis

Documentation

data Hash64 Source #

A 64 bit hash.

Instances

Instances details
Bounded Hash64 Source # 
Instance details

Defined in Data.Digest.Murmur64

Eq Hash64 Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

(==) :: Hash64 -> Hash64 -> Bool #

(/=) :: Hash64 -> Hash64 -> Bool #

Ord Hash64 Source # 
Instance details

Defined in Data.Digest.Murmur64

Show Hash64 Source # 
Instance details

Defined in Data.Digest.Murmur64

asWord64 :: Hash64 -> Word64 Source #

Extract 64 bit word from hash.

class Hashable64 a where Source #

Methods

hash64Add :: a -> Hash64 -> Hash64 Source #

Instances

Instances details
Hashable64 Bool Source # 
Instance details

Defined in Data.Digest.Murmur64

Hashable64 Char Source # 
Instance details

Defined in Data.Digest.Murmur64

Hashable64 Int Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: Int -> Hash64 -> Hash64 Source #

Hashable64 Integer Source # 
Instance details

Defined in Data.Digest.Murmur64

Hashable64 Word64 Source # 
Instance details

Defined in Data.Digest.Murmur64

Hashable64 () Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: () -> Hash64 -> Hash64 Source #

Hashable64 ByteString Source # 
Instance details

Defined in Data.Digest.Murmur64

Hashable64 ByteString Source # 
Instance details

Defined in Data.Digest.Murmur64

Hashable64 a => Hashable64 [a] Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: [a] -> Hash64 -> Hash64 Source #

Hashable64 a => Hashable64 (Maybe a) Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: Maybe a -> Hash64 -> Hash64 Source #

(Hashable64 a, Hashable64 b) => Hashable64 (Either a b) Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: Either a b -> Hash64 -> Hash64 Source #

(Hashable64 a, Hashable64 b) => Hashable64 (a, b) Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: (a, b) -> Hash64 -> Hash64 Source #

(Hashable64 a, Hashable64 b, Hashable64 c) => Hashable64 (a, b, c) Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: (a, b, c) -> Hash64 -> Hash64 Source #

(Hashable64 a, Hashable64 b, Hashable64 c, Hashable64 d) => Hashable64 (a, b, c, d) Source # 
Instance details

Defined in Data.Digest.Murmur64

Methods

hash64Add :: (a, b, c, d) -> Hash64 -> Hash64 Source #

hash64AddWord64 :: Word64 -> Hash64 -> Hash64 Source #

Add a 64 bit word to the hash.

hash64 :: Hashable64 a => a -> Hash64 Source #

Create a hash using the default seed.

hash64WithSeed :: Hashable64 a => Word64 -> a -> Hash64 Source #

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.

combine :: (Hash64 -> Hash64) -> (Hash64 -> Hash64) -> Hash64 -> Hash64 Source #

Combine two hash generators. E.g.,

  hashFoo (Foo a) = hash64AddInt 1 combine hash64Add a