pub fn int64_hash(key_arg : u64) -> u64 {
    let mut key = key_arg;
    //
    key = (!key).wrapping_add(key << 21); // key = (key << 21) - key - 1
    key = key ^ key >> 24;
    key = key.wrapping_add(key << 3).wrapping_add(key << 8); // key * 265
    key = key ^ key >> 14;
    key = key.wrapping_add(key << 2).wrapping_add(key << 4); // key * 21
    key = key ^ key >> 28;
    key = key.wrapping_add(key << 31);
    return key;
}
/// computes a u32 hash value for a u32 key.
/// we can retrieve key applying int32_hash_inverse to hash value
computes a u32 hash value for a u32 key.
we can retrieve key applying int32_hash_inverse to hash value
computes a u32 hash value for a u32 key . we can retrieve key applying int32_hash_inverse to hash value
pub fn int64_hash(key_arg : u64) -> u64 {
    let mut key = key_arg;
    //
    key = (!key).wrapping_add(key << 21); // key = (key << 21) - key - 1
    key = key ^ key >> 24;
    key = key.wrapping_add(key << 3).wrapping_add(key << 8); // key * 265
    key = key ^ key >> 14;
    key = key.wrapping_add(key << 2).wrapping_add(key << 4); // key * 21
    key = key ^ key >> 28;
    key = key.wrapping_add(key << 31);
    return key;
}
pub fn int64_hash ( key_arg : u64 ) -> u64 { let mut key = key_arg ; // key = ( ! key ) . wrapping_add ( key << 21 ) ; // key = (key << 21) - key - 1 key = key ^ key >> 24 ; key = key . wrapping_add ( key << 3 ) . wrapping_add ( key << 8 ) ; // key * 265 key = key ^ key >> 14 ; key = key . wrapping_add ( key << 2 ) . wrapping_add ( key << 4 ) ; // key * 21 key = key ^ key >> 28 ; key = key . wrapping_add ( key << 31 ) ; return key ; }
computes a u32 hash value for a u32 key.
computes a u32 hash value for a u32 key .
key_arg
u64