pub fn  int32_hash(tohash : u32) -> u32 {
    let mut key = tohash;
    key = key.wrapping_add( !(key << 15));
    key = key ^ (key >> 10);
    key = key.wrapping_add(key << 3);
    key = key ^ (key >> 6);
    key = key.wrapping_add( !(key << 11));
    key = key ^ (key >> 16);
    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  int32_hash(tohash : u32) -> u32 {
    let mut key = tohash;
    key = key.wrapping_add( !(key << 15));
    key = key ^ (key >> 10);
    key = key.wrapping_add(key << 3);
    key = key ^ (key >> 6);
    key = key.wrapping_add( !(key << 11));
    key = key ^ (key >> 16);
    return key;
}
pub fn int32_hash ( tohash : u32 ) -> u32 { let mut key = tohash ; key = key . wrapping_add ( ! ( key << 15 ) ) ; key = key ^ ( key >> 10 ) ; key = key . wrapping_add ( key << 3 ) ; key = key ^ ( key >> 6 ) ; key = key . wrapping_add ( ! ( key << 11 ) ) ; key = key ^ ( key >> 16 ) ; return key ; }
computes a u32 hash value for a u32 key.
computes a u32 hash value for a u32 key .
tohash
u32