stdlib_hash_64bit#

See also the specification page: stdlib_hash_32bit and stdlib_hash_64bit.

stdlib_hash_64bit (module)#

Variables

int_hashinteger, parameter, Default = int64

The number of bits in the output hash

bits_int8integer, parameter, Default = bit_size(0_int8)
bits_int16integer, parameter, Default = bit_size(0_int16)
bits_int32integer, parameter, Default = bit_size(0_int32)
bits_int64integer, parameter, Default = bit_size(0_int64)
bytes_int8integer, parameter, Default = bits_int8/bits_int8
bytes_int16integer, parameter, Default = bits_int16/bits_int8
bytes_int32integer, parameter, Default = bits_int32/bits_int8
bytes_int64integer, parameter, Default = bits_int64/bits_int8
bits_charinteger, parameter, Default = character_storage_size
bytes_charinteger, parameter, Default = bits_char/bits_int8
little_endianlogical, parameter, Default = (1==transfer([1_int8, 0_int8], 0_int16))

Interfaces

fnv_1_hash (interface)#

fnv_1_hash (interface)

FNV_1 interfaces (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Procedures:
pure module function int8_fnv_1(key) -> hash_code#

FNV_1 hash function for rank 1 arrays of kind int8

Arguments:
keyinteger(kind=int8), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
pure module function int16_fnv_1(key) -> hash_code#

FNV_1 hash function for rank 1 arrays of kind int16

Arguments:
keyinteger(kind=int16), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
pure module function int32_fnv_1(key) -> hash_code#

FNV_1 hash function for rank 1 arrays of kind int32

Arguments:
keyinteger(kind=int32), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
pure module function int64_fnv_1(key) -> hash_code#

FNV_1 hash function for rank 1 arrays of kind int64

Arguments:
keyinteger(kind=int64), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
elemental module function character_fnv_1(key) -> hash_code#

FNV_1 hash function for character strings

Arguments:
keycharacter(len=*), intent(in)
Returns:
hash_codeinteger(kind=int_hash)

fnv_1a_hash (interface)#

fnv_1a_hash (interface)

FNV_1A interfaces (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Procedures:
pure module function int8_fnv_1a(key) -> hash_code#

FNV_1A hash function for rank 1 arrays of kind int8

Arguments:
keyinteger(kind=int8), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
pure module function int16_fnv_1a(key) -> hash_code#

FNV_1A hash function for rank 1 arrays of kind int16

Arguments:
keyinteger(kind=int16), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
pure module function int32_fnv_1a(key) -> hash_code#

FNV_1A hash function for rank 1 arrays of kind int32

Arguments:
keyinteger(kind=int32), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
pure module function int64_fnv_1a(key) -> hash_code#

FNV_1A hash function for rank 1 arrays of kind int64

Arguments:
keyinteger(kind=int64), intent(in), dimension(:)
Returns:
hash_codeinteger(kind=int_hash)
elemental module function character_fnv_1a(key) -> hash_code#

FNV_1A hash function for character strings

Arguments:
keycharacter(len=*), intent(in)
Returns:
hash_codeinteger(kind=int_hash)

spooky_hash (interface)#

spooky_hash (interface)

SPOOKY_HASH interfaces (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Procedures:
module function int8_spooky_hash(key, seed) -> hash_code#

SPOOKY HASH function for rank 1 arrays of kind int8

Arguments:
keyinteger(kind=int8), intent(in), dimension(0:)
seedinteger(kind=int_hash), intent(in), dimension(2)
Returns:
hash_codeinteger(kind=int_hash), dimension(2)
module function int16_spooky_hash(key, seed) -> hash_code#

SPOOKY HASH function for rank 1 arrays of kind int16

Arguments:
keyinteger(kind=int16), intent(in), dimension(0:)
seedinteger(kind=int_hash), intent(in), dimension(2)
Returns:
hash_codeinteger(kind=int_hash), dimension(2)
module function int32_spooky_hash(key, seed) -> hash_code#

SPOOKY HASH function for rank 1 arrays of kind int32

Arguments:
keyinteger(kind=int32), intent(in), dimension(0:)
seedinteger(kind=int_hash), intent(in), dimension(2)
Returns:
hash_codeinteger(kind=int_hash), dimension(2)
module function int64_spooky_hash(key, seed) -> hash_code#

SPOOKY HASH function for rank 1 arrays of kind int64

Arguments:
keyinteger(kind=int64), intent(in), dimension(0:)
seedinteger(kind=int_hash), intent(in), dimension(2)
Returns:
hash_codeinteger(kind=int_hash), dimension(2)
module function character_spooky_hash(key, seed) -> hash_code#

SPOOKY hash function for character strings

Arguments:
keycharacter(len=*), intent(in)
seedinteger(kind=int_hash), intent(in), dimension(2)
Returns:
hash_codeinteger(kind=int_hash), dimension(2)

spookyHash_128 (interface)#

module subroutine spookyHash_128(key, hash_inout)
Arguments:
keyinteger(kind=int8), target, intent(in), dimension(0:)
hash_inoutinteger(kind=int_hash), intent(inout), dimension(2)

new_spooky_hash_seed (interface)#

module subroutine new_spooky_hash_seed(seed)

Random seed generator for SPOOKY_HASH

Arguments:
seedinteger(kind=int64), intent(inout), dimension(2)

pengy_hash (interface)#

pengy_hash (interface)

PENGY_HASH interfaces (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Procedures:
pure module function int8_pengy_hash(key, seed) -> hash_code#

PENGY_HASH hash function for rank 1 array keys of kind int8

Arguments:
keyinteger(kind=int8), intent(in), dimension(:)
seedinteger(kind=int32), intent(in)
Returns:
hash_codeinteger(kind=int64)
pure module function int16_pengy_hash(key, seed) -> hash_code#

PENGY_HASH hash function for rank 1 array keys of kind int16

Arguments:
keyinteger(kind=int16), intent(in), dimension(:)
seedinteger(kind=int32), intent(in)
Returns:
hash_codeinteger(kind=int64)
pure module function int32_pengy_hash(key, seed) -> hash_code#

PENGY_HASH hash function for rank 1 array keys of kind int32

Arguments:
keyinteger(kind=int32), intent(in), dimension(:)
seedinteger(kind=int32), intent(in)
Returns:
hash_codeinteger(kind=int64)
pure module function int64_pengy_hash(key, seed) -> hash_code#

PENGY_HASH hash function for rank 1 array keys of kind int64

Arguments:
keyinteger(kind=int64), intent(in), dimension(:)
seedinteger(kind=int32), intent(in)
Returns:
hash_codeinteger(kind=int64)
elemental module function character_pengy_hash(key, seed) -> hash_code#

MIR HASH STRICT function for character strings

Arguments:
keycharacter(len=*), intent(in)
seedinteger(kind=int32), intent(in)
Returns:
hash_codeinteger(kind=int64)

new_pengy_hash_seed (interface)#

module subroutine new_pengy_hash_seed(seed)

Random seed generator for MIR_HASH_STRICT

Arguments:
seedinteger(kind=int32), intent(inout)

Procedures

fibonacci_hash (function)#

elemental function fibonacci_hash(key, nbits) -> sample

Maps the 64 bit integer key to an unsigned integer value with only nbits bits where nbits is less than 64 (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Arguments:
keyinteger(kind=int64), intent(in)
nbitsinteger, intent(in)
Returns:
sampleinteger(kind=int64)

universal_mult_hash (function)#

elemental function universal_mult_hash(key, seed, nbits) -> sample

Uses the “random” odd 64 bit integer seed to map the 64 bit integer key to an unsigned integer value with only nbits bits where nbits is less than 64. (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Arguments:
keyinteger(kind=int64), intent(in)
seedinteger(kind=int64), intent(in)
nbitsinteger, intent(in)
Returns:
sampleinteger(kind=int64)

odd_random_integer (subroutine)#

subroutine odd_random_integer(harvest)

Returns a 64 bit pseudo random integer, harvest, distributed uniformly over the odd integers of the 64 bit kind. (Specification: stdlib_hash_32bit and stdlib_hash_64bit)

Arguments:
harvestinteger(kind=int64), intent(out)