stdlib_hash_64bit 模块



变量

类型 可见性 属性 名称 初始值
整数, 公共的, 参数 :: bits_char = character_storage_size
整数, 公共的, 参数 :: bits_int16 = bit_size(0_int16)
整数, 公共的, 参数 :: bits_int32 = bit_size(0_int32)
整数, 公共的, 参数 :: bits_int64 = bit_size(0_int64)
整数, 公共的, 参数 :: bits_int8 = bit_size(0_int8)
整数, 公共的, 参数 :: bytes_char = bits_char/bits_int8
整数, 公共的, 参数 :: bytes_int16 = bits_int16/bits_int8
整数, 公共的, 参数 :: bytes_int32 = bits_int32/bits_int8
整数, 公共的, 参数 :: bytes_int64 = bits_int64/bits_int8
整数, 公共的, 参数 :: bytes_int8 = bits_int8/bits_int8
整数, 公共的, 参数 :: int_hash = int64

输出哈希中的位数

逻辑, 公共的, 参数 :: little_endian = (1==transfer([1_int8, 0_int8], 0_int16))

接口

公共接口 fnv_1_hash

FNV_1 接口 (规范)

  • 私有基本模块函数 character_fnv_1(key) result(hash_code)

    用于字符字符串的 FNV_1 哈希函数

    参数

    类型 意图可选的 属性 名称
    字符(len=*), 意图(输入) :: key

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int16_fnv_1(key) result(hash_code)

    用于 kind 为 int16 的秩 1 数组的 FNV_1 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int16), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int32_fnv_1(key) result(hash_code)

    用于 kind 为 int32 的秩 1 数组的 FNV_1 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int32), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int64_fnv_1(key) result(hash_code)

    用于 kind 为 int64 的秩 1 数组的 FNV_1 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int64), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int8_fnv_1(key) result(hash_code)

    用于 kind 为 int8 的秩 1 数组的 FNV_1 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int8), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

公共接口 fnv_1a_hash

FNV_1A 接口 (规范)

  • 私有基本模块函数 character_fnv_1a(key) result(hash_code)

    用于字符字符串的 FNV_1A 哈希函数

    参数

    类型 意图可选的 属性 名称
    字符(len=*), 意图(输入) :: key

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int16_fnv_1a(key) result(hash_code)

    用于 kind 为 int16 的秩 1 数组的 FNV_1A 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int16), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int32_fnv_1a(key) result(hash_code)

    用于 kind 为 int32 的秩 1 数组的 FNV_1A 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int32), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int64_fnv_1a(key) result(hash_code)

    用于 kind 为 int64 的秩 1 数组的 FNV_1A 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int64), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

  • 私有纯模块函数 int8_fnv_1a(key) result(hash_code)

    用于 kind 为 int8 的秩 1 数组的 FNV_1A 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int8), 意图(输入) :: key(:)

    返回值 整数(kind=int_hash)

接口

  • 公共模块子例程 new_pengy_hash_seed(seed)

    用于 MIR_HASH_STRICT 的随机种子生成器

    参数

    类型 意图可选的 属性 名称
    整数(kind=int32), 意图(输入输出) :: seed

接口

  • 公共模块子例程 new_spooky_hash_seed(seed)

    用于 SPOOKY_HASH 的随机种子生成器

    参数

    类型 意图可选的 属性 名称
    整数(kind=int64), 意图(输入输出) :: seed(2)

公共接口 pengy_hash

PENGY_HASH 接口 (规范)

  • 私有基本模块函数 character_pengy_hash(key, seed) result(hash_code)

    用于字符字符串的 MIR HASH STRICT 函数

    参数

    类型 意图可选的 属性 名称
    字符(len=*), 意图(输入) :: key
    整数(kind=int32), 意图(输入) :: seed

    返回值 整数(kind=int64)

  • 私有纯模块函数 int16_pengy_hash(key, seed) result(hash_code)

    用于 kind 为 int16 的秩 1 数组键的 PENGY_HASH 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int16), 意图(输入) :: key(:)
    整数(kind=int32), 意图(输入) :: seed

    返回值 整数(kind=int64)

  • 私有纯模块函数 int32_pengy_hash(key, seed) result(hash_code)

    用于 kind 为 int32 的秩 1 数组键的 PENGY_HASH 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int32), 意图(输入) :: key(:)
    整数(kind=int32), 意图(输入) :: seed

    返回值 整数(kind=int64)

  • 私有纯模块函数 int64_pengy_hash(key, seed) result(hash_code)

    用于 kind 为 int64 的秩 1 数组键的 PENGY_HASH 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int64), 意图(输入) :: key(:)
    整数(kind=int32), 意图(输入) :: seed

    返回值 整数(kind=int64)

  • 私有纯模块函数 int8_pengy_hash(key, seed) result(hash_code)

    用于 kind 为 int8 的秩 1 数组键的 PENGY_HASH 哈希函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int8), 意图(输入) :: key(:)
    整数(kind=int32), 意图(输入) :: seed

    返回值 整数(kind=int64)

接口

  • 公共模块子例程 spookyHash_128(key, hash_inout)

    参数

    类型 意图可选的 属性 名称
    整数(kind=int8), 意图(输入), 目标 :: key(0:)
    整数(kind=int_hash), 意图(输入输出) :: hash_inout(2)

公共接口 spooky_hash

SPOOKY_HASH 接口 (规范)

  • 私有模块函数 character_spooky_hash(key, seed) result(hash_code)

    用于字符字符串的 SPOOKY 哈希函数

    参数

    类型 意图可选的 属性 名称
    字符(len=*), 意图(输入) :: key
    整数(kind=int_hash), 意图(输入) :: seed(2)

    返回值 整数(kind=int_hash), (2)

  • 私有模块函数 int16_spooky_hash(key, seed) result(hash_code)

    用于 kind 为 int16 的秩 1 数组的 SPOOKY HASH 函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int16), 意图(输入) :: key(0:)
    整数(kind=int_hash), 意图(输入) :: seed(2)

    返回值 整数(kind=int_hash), (2)

  • 私有模块函数 int32_spooky_hash(key, seed) result(hash_code)

    用于 kind 为 int32 的秩 1 数组的 SPOOKY HASH 函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int32), 意图(输入) :: key(0:)
    整数(kind=int_hash), 意图(输入) :: seed(2)

    返回值 整数(kind=int_hash), (2)

  • 私有模块函数 int64_spooky_hash(key, seed) result(hash_code)

    用于 kind 为 int64 的秩 1 数组的 SPOOKY HASH 函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int64), 意图(输入) :: key(0:)
    整数(kind=int_hash), 意图(输入) :: seed(2)

    返回值 整数(kind=int_hash), (2)

  • 私有模块函数 int8_spooky_hash(key, seed) result(hash_code)

    用于 kind 为 int8 的秩 1 数组的 SPOOKY HASH 函数

    参数

    类型 意图可选的 属性 名称
    整数(kind=int8), 意图(输入) :: key(0:)
    整数(kind=int_hash), 意图(输入) :: seed(2)

    返回值 整数(kind=int_hash), (2)


函数

公共基本函数 fibonacci_hash(key, nbits) result(sample)

许可
Creative Commons License
版本
实验性

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

参数

类型 意图可选的 属性 名称
整数(kind=int64), 意图(输入) :: key
整数, 意图(输入) :: nbits

返回值 整数(kind=int64)

公共基本函数 universal_mult_hash(key, seed, nbits) result(sample)

许可
Creative Commons License
版本
实验性

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

参数

类型 意图可选的 属性 名称
整数(kind=int64), 意图(输入) :: key
整数(kind=int64), 意图(输入) :: seed
整数, 意图(输入) :: nbits

返回值 整数(kind=int64)


子例程

公共子例程 odd_random_integer(harvest)

许可
Creative Commons License
版本
实验性

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

参数

类型 意图可选的 属性 名称
整数(kind=int64), 意图(输出) :: harvest