Hash values
Hash values represent a string of hash bits, packed into a Nat32
.
public let length : Nat
The hash length, always 31.
public func bit(h : Hash, pos : Nat) : Bool
Project a given bit from the bit vector.
public func hash(n : Nat) : Hash
Computes a hash from the least significant 32-bits of n
, ignoring other bits.
@deprecated For large Nat
values consider using a bespoke hash function that considers all of the argument's bits.
public func debugPrintBits(bits : Hash)
@deprecated This function will be removed in future.
public func debugPrintBitsRev(bits : Hash)
@deprecated This function will be removed in future.
public func hashNat8(key : [Hash]) : Hash
Jenkin's one at a time:
https://en.wikipedia.org/wiki/Jenkins_hash_function#one_at_a_time
The input type should actually be [Nat8]
.
Note: Be sure to explode each Nat8
of a Nat32
into its own Nat32
, and to shift into lower 8 bits.
@deprecated This function may be removed or changed in future.