mom_murmur_hash module reference

MurmurHash is a non-cryptographic hash function developed by Austin Appleby.

More…

Functions/Subroutines

murmurhash3_i32()

Return the murmur3 hash for a 32-bit integer array.

murmurhash3_i64()

Return the murmur3 hash for a 64-bit integer array.

murmurhash3_r32()

Return the murmur3 hash for a 32-bit real array.

murmurhash3_r32_1d()

Return the murmur3 hash for a 32-bit real array.

murmurhash3_r32_2d()

Return the murmur3 hash for a 32-bit real 2D array.

murmurhash3_r32_3d()

Return the murmur3 hash for a 32-bit real 3D array.

murmurhash3_r32_4d()

Return the murmur3 hash for a 32-bit real 4D array.

murmurhash3_r64()

Return the murmur3 hash for a 64-bit real array.

murmurhash3_r64_1d()

Return the murmur3 hash for a 64-bit real array.

murmurhash3_r64_2d()

Return the murmur3 hash for a 64-bit real 2D array.

murmurhash3_r64_3d()

Return the murmur3 hash for a 64-bit real 3D array.

murmurhash3_r64_4d()

Return the murmur3 hash for a 64-bit real 4D array.

Detailed Description

This module provides an implementation of the 32-bit MurmurHash3 algorithm. It is used in MOM6 to generate unique hashes of field arrays. The hash is sensitive to order of elements and can detect changes that would otherwise be missed by the mean/min/max/bitcount tests.

Sensitivity to order means that it must be used with care for tests such as processor layout.

This implementation assumes data sizes of either 32 or 64 bits. It cannot be used for smaller types such as strings.

https://github.com/aappleby/smhasher

Function/Subroutine Documentation

function mom_murmur_hash/murmurhash3_i32(key, seed) [integer(int32)]

Return the murmur3 hash for a 32-bit integer array.

Parameters:
  • key :: [in] Input array

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_i64(key, seed) [integer(int32)]

Return the murmur3 hash for a 64-bit integer array.

Parameters:
  • key :: [in] Input array

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r32(key, seed) [integer(int32)]

Return the murmur3 hash for a 32-bit real array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r32_1d(key, seed) [integer(int32)]

Return the murmur3 hash for a 32-bit real array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r32_2d(key, seed) [integer(int32)]

Return the murmur3 hash for a 32-bit real 2D array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r32_3d(key, seed) [integer(int32)]

Return the murmur3 hash for a 32-bit real 3D array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r32_4d(key, seed) [integer(int32)]

Return the murmur3 hash for a 32-bit real 4D array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r64(key, seed) [integer(int32)]

Return the murmur3 hash for a 64-bit real array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r64_1d(key, seed) [integer(int32)]

Return the murmur3 hash for a 64-bit real array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r64_2d(key, seed) [integer(int32)]

Return the murmur3 hash for a 64-bit real 2D array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r64_3d(key, seed) [integer(int32)]

Return the murmur3 hash for a 64-bit real 3D array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array

function mom_murmur_hash/murmurhash3_r64_4d(key, seed) [integer(int32)]

Return the murmur3 hash for a 64-bit real 4D array.

Parameters:
  • key :: [in] Input array [arbitrary]

  • seed :: [in] Hash seed

Return:

undefined :: Murmur hash of array