Reuse same hash function for ints and floats.

The code was simply duplicated before, for no real reason.
This commit is contained in:
Nathan Vegdahl 2020-03-16 09:50:10 +09:00
parent 420e078b70
commit deaacd73fb

View File

@ -24,13 +24,6 @@ pub fn hash_u64(n: u64, seed: u64) -> u64 {
/// Generally use n for getting a bunch of different random /// Generally use n for getting a bunch of different random
/// numbers, and use seed to vary between runs. /// numbers, and use seed to vary between runs.
pub fn hash_u32_to_f32(n: u32, seed: u32) -> f32 { pub fn hash_u32_to_f32(n: u32, seed: u32) -> f32 {
let mut hash = n;
for _ in 0..3 {
hash = hash.wrapping_mul(1_936_502_639);
hash ^= hash.wrapping_shr(16);
hash ^= seed;
}
const INV_MAX: f32 = 1.0 / std::u32::MAX as f32; const INV_MAX: f32 = 1.0 / std::u32::MAX as f32;
hash_u32(n, seed) as f32 * INV_MAX
hash as f32 * INV_MAX
} }