stdlib_hash_32bit 模块



变量

类型 可见性 属性 名称 初始值
integer, public, parameter :: int_hash = int32

输出哈希的位数

logical, public, parameter :: little_endian = (1==transfer([1_int8, 0_int8], 0_int16))

接口

public interface fnv_1_hash

FNV_1 接口 (规范)

  • private elemental module function character_fnv_1(key) result(hash_code)

    针对默认字符字符串键的 FNV_1 哈希函数

    参数

    类型 意图可选 属性 名称
    character(len=*), intent(in) :: key

    返回值 integer(kind=int_hash)

  • private pure module function int16_fnv_1(key) result(hash_code)

    针对类型为 int16 的秩 1 数组键的 FNV_1 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int16), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

  • private pure module function int32_fnv_1(key) result(hash_code)

    针对类型为 int32 的秩 1 数组键的 FNV_1 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

  • private pure module function int64_fnv_1(key) result(hash_code)

    针对类型为 int64 的秩 1 数组键的 FNV_1 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int64), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

  • private pure module function int8_fnv_1(key) result(hash_code)

    针对类型为 int8 的秩 1 数组键的 FNV_1 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int8), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

public interface fnv_1a_hash

FNV_1A 接口 (规范)

  • private elemental module function character_fnv_1a(key) result(hash_value)

    针对默认字符字符串键的 FNV_1A 哈希函数

    参数

    类型 意图可选 属性 名称
    character(len=*), intent(in) :: key

    返回值 integer(kind=int_hash)

  • private pure module function int16_fnv_1a(key) result(hash_value)

    针对类型为 int16 的秩 1 数组键的 FNV_1A 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int16), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

  • private pure module function int32_fnv_1a(key) result(hash_value)

    针对类型为 int32 的秩 1 数组键的 FNV_1A 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

  • private pure module function int64_fnv_1a(key) result(hash_value)

    针对类型为 int64 的秩 1 数组键的 FNV_1A 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int64), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

  • private pure module function int8_fnv_1a(key) result(hash_value)

    针对类型为 int8 的秩 1 数组键的 FNV_1A 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int8), intent(in) :: key(:)

    返回值 integer(kind=int_hash)

public interface new_nmhash32_seed

  • private module subroutine new_nmhash32_seed(seed)

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(inout) :: seed

public interface new_nmhash32x_seed

(规范)

  • private module subroutine new_nmhash32x_seed(seed)

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(inout) :: seed

public interface new_water_hash_seed

(规范)

  • private module subroutine new_water_hash_seed(seed)

    参数

    类型 意图可选 属性 名称
    integer(kind=int64), intent(inout) :: seed

public interface nmhash32

NMHASH32 接口 (规范)

  • private elemental module function character_nmhash32(key, seed) result(hash_value)

    针对默认字符字符串键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    character(len=*), intent(in) :: key
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int16_nmhash32(key, seed) result(hash_value)

    针对类型为 int16 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int16), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int32_nmhash32(key, seed) result(hash_value)

    针对类型为 int32 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int64_nmhash32(key, seed) result(hash_value)

    针对类型为 int64 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int64), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int8_nmhash32(key, seed) result(hash_value)

    针对类型为 int8 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int8), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

public interface nmhash32x

NMHASH32X 接口 (规范)

  • private elemental module function character_nmhash32x(key, seed) result(hash_value)

    针对默认字符字符串键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    character(len=*), intent(in) :: key
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int16_nmhash32x(key, seed) result(hash_value)

    针对类型为 int16 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int16), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int32_nmhash32x(key, seed) result(hash_value)

    针对类型为 int32 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int64_nmhash32x(key, seed) result(hash_value)

    针对类型为 int64 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int64), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

  • private pure module function int8_nmhash32x(key, seed) result(hash_value)

    针对类型为 int8 的秩 1 数组键的 NMHASH32 哈希函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int8), intent(in) :: key(0:)
    integer(kind=int32), intent(in) :: seed

    返回值 integer(kind=int32)

public interface water_hash

WATER_HASH 接口 (规范)

  • private elemental module function character_water_hash(key, seed) result(hash_code)

    针对默认字符字符串键的 WATER 哈希函数

    参数

    类型 意图可选 属性 名称
    character(len=*), intent(in) :: key
    integer(kind=int64), intent(in) :: seed

    返回值 integer(kind=int_hash)

  • private pure module function int16_water_hash(key, seed) result(hash_code)

    针对类型为 int16 的秩 1 数组键的 WATER HASH 函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int16), intent(in) :: key(0:)
    integer(kind=int64), intent(in) :: seed

    返回值 integer(kind=int_hash)

  • private pure module function int32_water_hash(key, seed) result(hash_code)

    针对类型为 int32 的秩 1 数组键的 WATER HASH 函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int32), intent(in) :: key(0:)
    integer(kind=int64), intent(in) :: seed

    返回值 integer(kind=int_hash)

  • private pure module function int64_water_hash(key, seed) result(hash_code)

    针对类型为 int64 的秩 1 数组键的 WATER HASH 函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int64), intent(in) :: key(0:)
    integer(kind=int64), intent(in) :: seed

    返回值 integer(kind=int_hash)

  • private pure module function int8_water_hash(key, seed) result(hash_code)

    针对类型为 int8 的秩 1 数组键的 WATER HASH 函数

    参数

    类型 意图可选 属性 名称
    integer(kind=int8), intent(in) :: key(0:)
    integer(kind=int64), intent(in) :: seed

    返回值 integer(kind=int_hash)


函数

public elemental function fibonacci_hash(key, nbits) result(sample)

许可证
Creative Commons License
版本
实验性

将 32 位整数 key 映射到仅 nbits 位的无符号整数值,其中 nbits 小于 32 (规范)

参数

类型 意图可选 属性 名称
integer(kind=int32), intent(in) :: key
integer, intent(in) :: nbits

返回值 integer(kind=int32)

public elemental function universal_mult_hash(key, seed, nbits) result(sample)

许可证
Creative Commons License
版本
实验性

使用“随机”奇数 32 位整数 seed 将 32 位整数 key 映射到仅 nbits 位的无符号整数值,其中 nbits 小于 32 (规范)

参数

类型 意图可选 属性 名称
integer(kind=int32), intent(in) :: key
integer(kind=int32), intent(in) :: seed
integer, intent(in) :: nbits

返回值 integer(kind=int32)


子程序

public subroutine odd_random_integer(harvest)

许可证
Creative Commons License
版本
实验性

返回一个 32 位伪随机整数 harvest,该整数均匀分布在 int32 类型的奇数整数上。(规范)

参数

类型 意图可选 属性 名称
integer(kind=int32), intent(out) :: harvest