DoxigAlpha

hashUint64WithSeed

Function parameters

Parameters

#
v:u64
seed:u32

Type definitions in this namespace

Types

#

Source

Implementation

#
pub fn hashUint64WithSeed(v: u64, seed: u32) u32 {
    const m: u32 = 0x5bd1e995;
    const len: u32 = 8;
    var h1: u32 = seed ^ len;
    var k1: u32 = undefined;
    k1 = @as(u32, @truncate(v)) *% m;
    k1 ^= k1 >> 24;
    k1 *%= m;
    h1 *%= m;
    h1 ^= k1;
    k1 = @as(u32, @truncate(v >> 32)) *% m;
    k1 ^= k1 >> 24;
    k1 *%= m;
    h1 *%= m;
    h1 ^= k1;
    h1 ^= h1 >> 13;
    h1 *%= m;
    h1 ^= h1 >> 15;
    return h1;
}