entro-hash 1.0.4

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
15
16
17
pub fn entro_hash(input: &[u8], mut entropy: u32) -> u32 {
    let mut i: usize = 0;

    while i != input.len() {
        entropy ^= ((input[i] as u32) + 111111) ^ 111111;
        entropy = entropy.wrapping_add((!entropy ^ 1111111111) << 4);
        entropy = (entropy << 31).wrapping_add(!entropy >> 1);
        entropy = entropy.wrapping_add(entropy << 3);
        entropy ^= input[i] as u32;
        entropy = entropy.wrapping_add((entropy.wrapping_add(111111111)) << 9);
        entropy = entropy.wrapping_add(entropy << 3);
        entropy = entropy.wrapping_add(((!entropy).wrapping_add(entropy)) << 1);
        i += 1;
    }

    return entropy;
}