entro-hash 1.0.6

Entro Hash is a 32-bit, non-cryptographic hashing algorithm.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pub fn entro_hash(input: &[u8], mut entropy: u32) -> u32 {
    let mut i: usize = 0;

    while i != input.len() {
        entropy = (input[i] as u32).wrapping_add(entropy);
        entropy = (entropy.wrapping_add(111111111) << 9).wrapping_add(entropy);
        entropy = (entropy << 5).wrapping_add(entropy);
        entropy = ((entropy << 3).wrapping_add(entropy) << 24).wrapping_add(entropy);
        entropy ^= entropy >> 16;
        i += 1;
    }

    return entropy;
}