| author | |
| committer | |
| log | 9684c99dd37ff987114824b2af17b6160b908b79 |
| tree | 49af1a57709c83d728320865cad08f92e2060109 |
| parent | 0619b525b9100e95ab293792bcaa3c565e08a979 |
2 files changed, 19 insertions(+), 19 deletions(-)
std/hash/cityhash.zig+10-10| ... | ... | @@ -45,7 +45,7 @@ pub const CityHash32 = struct { |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | fn hash32Len0To4(str: []const u8) u32 { |
| 48 | const len: u32 = @intCast(u32, str.len); | |
| 48 | const len: u32 = @truncate(u32, str.len); | |
| 49 | 49 | var b: u32 = 0; |
| 50 | 50 | var c: u32 = 9; |
| 51 | 51 | for (str) |v| { |
| ... | ... | @@ -56,7 +56,7 @@ pub const CityHash32 = struct { |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | 58 | fn hash32Len5To12(str: []const u8) u32 { |
| 59 | var a: u32 = @intCast(u32, str.len); | |
| 59 | var a: u32 = @truncate(u32, str.len); | |
| 60 | 60 | var b: u32 = a *% 5; |
| 61 | 61 | var c: u32 = 9; |
| 62 | 62 | const d: u32 = b; |
| ... | ... | @@ -69,7 +69,7 @@ pub const CityHash32 = struct { |
| 69 | 69 | } |
| 70 | 70 | |
| 71 | 71 | fn hash32Len13To24(str: []const u8) u32 { |
| 72 | const len: u32 = @intCast(u32, str.len); | |
| 72 | const len: u32 = @truncate(u32, str.len); | |
| 73 | 73 | const a: u32 = fetch32(str.ptr + (str.len >> 1) - 4); |
| 74 | 74 | const b: u32 = fetch32(str.ptr + 4); |
| 75 | 75 | const c: u32 = fetch32(str.ptr + str.len - 8); |
| ... | ... | @@ -91,7 +91,7 @@ pub const CityHash32 = struct { |
| 91 | 91 | } |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | const len: u32 = @intCast(u32, str.len); | |
| 94 | const len: u32 = @truncate(u32, str.len); | |
| 95 | 95 | var h: u32 = len; |
| 96 | 96 | var g: u32 = c1 *% len; |
| 97 | 97 | var f: u32 = g; |
| ... | ... | @@ -214,7 +214,7 @@ pub const CityHash64 = struct { |
| 214 | 214 | } |
| 215 | 215 | |
| 216 | 216 | fn hashLen0To16(str: []const u8) u64 { |
| 217 | const len: u64 = @intCast(u64, str.len); | |
| 217 | const len: u64 = @truncate(u64, str.len); | |
| 218 | 218 | if (len >= 8) { |
| 219 | 219 | const mul: u64 = k2 +% len *% 2; |
| 220 | 220 | const a: u64 = fetch64(str.ptr) + k2; |
| ... | ... | @@ -233,14 +233,14 @@ pub const CityHash64 = struct { |
| 233 | 233 | const b: u8 = str[str.len >> 1]; |
| 234 | 234 | const c: u8 = str[str.len - 1]; |
| 235 | 235 | const y: u32 = @intCast(u32, a) +% (@intCast(u32, b) << 8); |
| 236 | const z: u32 = @intCast(u32, str.len) +% (@intCast(u32, c) << 2); | |
| 236 | const z: u32 = @truncate(u32, str.len) +% (@intCast(u32, c) << 2); | |
| 237 | 237 | return shiftmix(@intCast(u64, y) *% k2 ^ @intCast(u64, z) *% k0) *% k2; |
| 238 | 238 | } |
| 239 | 239 | return k2; |
| 240 | 240 | } |
| 241 | 241 | |
| 242 | 242 | fn hashLen17To32(str: []const u8) u64 { |
| 243 | const len: u64 = @intCast(u64, str.len); | |
| 243 | const len: u64 = @truncate(u64, str.len); | |
| 244 | 244 | const mul: u64 = k2 +% len *% 2; |
| 245 | 245 | const a: u64 = fetch64(str.ptr) *% k1; |
| 246 | 246 | const b: u64 = fetch64(str.ptr + 8); |
| ... | ... | @@ -251,7 +251,7 @@ pub const CityHash64 = struct { |
| 251 | 251 | } |
| 252 | 252 | |
| 253 | 253 | fn hashLen33To64(str: []const u8) u64 { |
| 254 | const len: u64 = @intCast(u64, str.len); | |
| 254 | const len: u64 = @truncate(u64, str.len); | |
| 255 | 255 | const mul: u64 = k2 +% len *% 2; |
| 256 | 256 | const a: u64 = fetch64(str.ptr) *% k2; |
| 257 | 257 | const b: u64 = fetch64(str.ptr + 8); |
| ... | ... | @@ -305,7 +305,7 @@ pub const CityHash64 = struct { |
| 305 | 305 | return hashLen33To64(str); |
| 306 | 306 | } |
| 307 | 307 | |
| 308 | var len: u64 = @intCast(u64, str.len); | |
| 308 | var len: u64 = @truncate(u64, str.len); | |
| 309 | 309 | |
| 310 | 310 | var x: u64 = fetch64(str.ptr + str.len - 40); |
| 311 | 311 | var y: u64 = fetch64(str.ptr + str.len - 16) +% fetch64(str.ptr + str.len - 56); |
| ... | ... | @@ -367,7 +367,7 @@ fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 { |
| 367 | 367 | @memcpy(@ptrCast([*]u8, &hashes[i * hashbytes]), @ptrCast([*]u8, &h), hashbytes); |
| 368 | 368 | } |
| 369 | 369 | |
| 370 | return @intCast(u32, hash_fn(hashes, 0) & 0xffffffff); | |
| 370 | return @truncate(u32, hash_fn(hashes, 0)); | |
| 371 | 371 | } |
| 372 | 372 | |
| 373 | 373 | fn CityHash32hashIgnoreSeed(str: []const u8, seed: u32) u32 { |
std/hash/murmur.zig+9-9| ... | ... | @@ -13,7 +13,7 @@ pub const Murmur2_32 = struct { |
| 13 | 13 | |
| 14 | 14 | pub fn hashWithSeed(str: []const u8, seed: u32) u32 { |
| 15 | 15 | const m: u32 = 0x5bd1e995; |
| 16 | const len = @intCast(u32, str.len); | |
| 16 | const len = @truncate(u32, str.len); | |
| 17 | 17 | var h1: u32 = seed ^ len; |
| 18 | 18 | for (@ptrCast([*]allowzero align(1) const u32, str.ptr)[0..(len >> 2)]) |v| { |
| 19 | 19 | var k1: u32 = v; |
| ... | ... | @@ -72,12 +72,12 @@ pub const Murmur2_32 = struct { |
| 72 | 72 | const len: u32 = 8; |
| 73 | 73 | var h1: u32 = seed ^ len; |
| 74 | 74 | var k1: u32 = undefined; |
| 75 | k1 = @intCast(u32, v & 0xffffffff) *% m; | |
| 75 | k1 = @truncate(u32, v) *% m; | |
| 76 | 76 | k1 ^= k1 >> 24; |
| 77 | 77 | k1 *%= m; |
| 78 | 78 | h1 *%= m; |
| 79 | 79 | h1 ^= k1; |
| 80 | k1 = @intCast(u32, v >> 32) *% m; | |
| 80 | k1 = @truncate(u32, v >> 32) *% m; | |
| 81 | 81 | k1 ^= k1 >> 24; |
| 82 | 82 | k1 *%= m; |
| 83 | 83 | h1 *%= m; |
| ... | ... | @@ -98,7 +98,7 @@ pub const Murmur2_64 = struct { |
| 98 | 98 | |
| 99 | 99 | pub fn hashWithSeed(str: []const u8, seed: u64) u64 { |
| 100 | 100 | const m: u64 = 0xc6a4a7935bd1e995; |
| 101 | const len = @intCast(u64, str.len); | |
| 101 | const len = @truncate(u64, str.len); | |
| 102 | 102 | var h1: u64 = seed ^ (len *% m); |
| 103 | 103 | for (@ptrCast([*]allowzero align(1) const u64, str.ptr)[0..(len >> 3)]) |v| { |
| 104 | 104 | var k1: u64 = v; |
| ... | ... | @@ -178,7 +178,7 @@ pub const Murmur3_32 = struct { |
| 178 | 178 | pub fn hashWithSeed(str: []const u8, seed: u32) u32 { |
| 179 | 179 | const c1: u32 = 0xcc9e2d51; |
| 180 | 180 | const c2: u32 = 0x1b873593; |
| 181 | const len = @intCast(u32, str.len); | |
| 181 | const len = @truncate(u32, str.len); | |
| 182 | 182 | var h1: u32 = seed; |
| 183 | 183 | for (@ptrCast([*]allowzero align(1) const u32, str.ptr)[0..(len >> 2)]) |v| { |
| 184 | 184 | var k1: u32 = v; |
| ... | ... | @@ -255,14 +255,14 @@ pub const Murmur3_32 = struct { |
| 255 | 255 | const len: u32 = 8; |
| 256 | 256 | var h1: u32 = seed; |
| 257 | 257 | var k1: u32 = undefined; |
| 258 | k1 = @intCast(u32, v & 0xffffffff) *% c1; | |
| 258 | k1 = @truncate(u32, v) *% c1; | |
| 259 | 259 | k1 = rotl32(k1, 15); |
| 260 | 260 | k1 *%= c2; |
| 261 | 261 | h1 ^= k1; |
| 262 | 262 | h1 = rotl32(h1, 13); |
| 263 | 263 | h1 *%= 5; |
| 264 | 264 | h1 +%= 0xe6546b64; |
| 265 | k1 = @intCast(u32, v >> 32) *% c1; | |
| 265 | k1 = @truncate(u32, v >> 32) *% c1; | |
| 266 | 266 | k1 = rotl32(k1, 15); |
| 267 | 267 | k1 *%= c2; |
| 268 | 268 | h1 ^= k1; |
| ... | ... | @@ -291,7 +291,7 @@ fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 { |
| 291 | 291 | |
| 292 | 292 | var i: u32 = 0; |
| 293 | 293 | while (i < 256) : (i += 1) { |
| 294 | key[i] = @intCast(u8, i); | |
| 294 | key[i] = @truncate(u8, i); | |
| 295 | 295 | |
| 296 | 296 | var h = hash_fn(key[0..i], 256 - i); |
| 297 | 297 | if (builtin.endian == builtin.Endian.Big) |
| ... | ... | @@ -299,7 +299,7 @@ fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 { |
| 299 | 299 | @memcpy(@ptrCast([*]u8, &hashes[i * hashbytes]), @ptrCast([*]u8, &h), hashbytes); |
| 300 | 300 | } |
| 301 | 301 | |
| 302 | return @intCast(u32, hash_fn(hashes, 0) & 0xffffffff); | |
| 302 | return @truncate(u32, hash_fn(hashes, 0)); | |
| 303 | 303 | } |
| 304 | 304 | |
| 305 | 305 | test "murmur2_32" { |