22 lines
494 B
TypeScript
22 lines
494 B
TypeScript
|
|
||
|
namespace Hash
|
||
|
{
|
||
|
export function Wang_U32(key: number) : number
|
||
|
{
|
||
|
key += ~(key << 15);
|
||
|
key ^= (key >> 10);
|
||
|
key += (key << 3);
|
||
|
key ^= (key >> 6);
|
||
|
key += ~(key << 11);
|
||
|
key ^= (key >> 16);
|
||
|
return key;
|
||
|
}
|
||
|
|
||
|
|
||
|
export function Combine_U32(hash_a: number, hash_b: number) : number
|
||
|
{
|
||
|
let random_bits = 0x9E3779B9;
|
||
|
hash_a ^= hash_b + random_bits + (hash_a << 6) + (hash_a >> 2);
|
||
|
return hash_a;
|
||
|
}
|
||
|
}
|