authorgravatar for andersfr@gmail.comandersfr <andersfr@gmail.com> 2019-07-06 23:44:43+02:00
committergravatar for andersfr@gmail.comandersfr <andersfr@gmail.com> 2019-07-13 13:59:15+02:00
log9684c99dd37ff987114824b2af17b6160b908b79
tree49af1a57709c83d728320865cad08f92e2060109
parent0619b525b9100e95ab293792bcaa3c565e08a979

Proper use of @truncate instead of @intCast


2 files changed, 19 insertions(+), 19 deletions(-)

std/hash/cityhash.zig+10-10
......@@ -45,7 +45,7 @@ pub const CityHash32 = struct {
4545 }
4646
4747 fn hash32Len0To4(str: []const u8) u32 {
48 const len: u32 = @intCast(u32, str.len);
48 const len: u32 = @truncate(u32, str.len);
4949 var b: u32 = 0;
5050 var c: u32 = 9;
5151 for (str) |v| {
......@@ -56,7 +56,7 @@ pub const CityHash32 = struct {
5656 }
5757
5858 fn hash32Len5To12(str: []const u8) u32 {
59 var a: u32 = @intCast(u32, str.len);
59 var a: u32 = @truncate(u32, str.len);
6060 var b: u32 = a *% 5;
6161 var c: u32 = 9;
6262 const d: u32 = b;
......@@ -69,7 +69,7 @@ pub const CityHash32 = struct {
6969 }
7070
7171 fn hash32Len13To24(str: []const u8) u32 {
72 const len: u32 = @intCast(u32, str.len);
72 const len: u32 = @truncate(u32, str.len);
7373 const a: u32 = fetch32(str.ptr + (str.len >> 1) - 4);
7474 const b: u32 = fetch32(str.ptr + 4);
7575 const c: u32 = fetch32(str.ptr + str.len - 8);
......@@ -91,7 +91,7 @@ pub const CityHash32 = struct {
9191 }
9292 }
9393
94 const len: u32 = @intCast(u32, str.len);
94 const len: u32 = @truncate(u32, str.len);
9595 var h: u32 = len;
9696 var g: u32 = c1 *% len;
9797 var f: u32 = g;
......@@ -214,7 +214,7 @@ pub const CityHash64 = struct {
214214 }
215215
216216 fn hashLen0To16(str: []const u8) u64 {
217 const len: u64 = @intCast(u64, str.len);
217 const len: u64 = @truncate(u64, str.len);
218218 if (len >= 8) {
219219 const mul: u64 = k2 +% len *% 2;
220220 const a: u64 = fetch64(str.ptr) + k2;
......@@ -233,14 +233,14 @@ pub const CityHash64 = struct {
233233 const b: u8 = str[str.len >> 1];
234234 const c: u8 = str[str.len - 1];
235235 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);
237237 return shiftmix(@intCast(u64, y) *% k2 ^ @intCast(u64, z) *% k0) *% k2;
238238 }
239239 return k2;
240240 }
241241
242242 fn hashLen17To32(str: []const u8) u64 {
243 const len: u64 = @intCast(u64, str.len);
243 const len: u64 = @truncate(u64, str.len);
244244 const mul: u64 = k2 +% len *% 2;
245245 const a: u64 = fetch64(str.ptr) *% k1;
246246 const b: u64 = fetch64(str.ptr + 8);
......@@ -251,7 +251,7 @@ pub const CityHash64 = struct {
251251 }
252252
253253 fn hashLen33To64(str: []const u8) u64 {
254 const len: u64 = @intCast(u64, str.len);
254 const len: u64 = @truncate(u64, str.len);
255255 const mul: u64 = k2 +% len *% 2;
256256 const a: u64 = fetch64(str.ptr) *% k2;
257257 const b: u64 = fetch64(str.ptr + 8);
......@@ -305,7 +305,7 @@ pub const CityHash64 = struct {
305305 return hashLen33To64(str);
306306 }
307307
308 var len: u64 = @intCast(u64, str.len);
308 var len: u64 = @truncate(u64, str.len);
309309
310310 var x: u64 = fetch64(str.ptr + str.len - 40);
311311 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 {
367367 @memcpy(@ptrCast([*]u8, &hashes[i * hashbytes]), @ptrCast([*]u8, &h), hashbytes);
368368 }
369369
370 return @intCast(u32, hash_fn(hashes, 0) & 0xffffffff);
370 return @truncate(u32, hash_fn(hashes, 0));
371371}
372372
373373fn CityHash32hashIgnoreSeed(str: []const u8, seed: u32) u32 {
std/hash/murmur.zig+9-9
......@@ -13,7 +13,7 @@ pub const Murmur2_32 = struct {
1313
1414 pub fn hashWithSeed(str: []const u8, seed: u32) u32 {
1515 const m: u32 = 0x5bd1e995;
16 const len = @intCast(u32, str.len);
16 const len = @truncate(u32, str.len);
1717 var h1: u32 = seed ^ len;
1818 for (@ptrCast([*]allowzero align(1) const u32, str.ptr)[0..(len >> 2)]) |v| {
1919 var k1: u32 = v;
......@@ -72,12 +72,12 @@ pub const Murmur2_32 = struct {
7272 const len: u32 = 8;
7373 var h1: u32 = seed ^ len;
7474 var k1: u32 = undefined;
75 k1 = @intCast(u32, v & 0xffffffff) *% m;
75 k1 = @truncate(u32, v) *% m;
7676 k1 ^= k1 >> 24;
7777 k1 *%= m;
7878 h1 *%= m;
7979 h1 ^= k1;
80 k1 = @intCast(u32, v >> 32) *% m;
80 k1 = @truncate(u32, v >> 32) *% m;
8181 k1 ^= k1 >> 24;
8282 k1 *%= m;
8383 h1 *%= m;
......@@ -98,7 +98,7 @@ pub const Murmur2_64 = struct {
9898
9999 pub fn hashWithSeed(str: []const u8, seed: u64) u64 {
100100 const m: u64 = 0xc6a4a7935bd1e995;
101 const len = @intCast(u64, str.len);
101 const len = @truncate(u64, str.len);
102102 var h1: u64 = seed ^ (len *% m);
103103 for (@ptrCast([*]allowzero align(1) const u64, str.ptr)[0..(len >> 3)]) |v| {
104104 var k1: u64 = v;
......@@ -178,7 +178,7 @@ pub const Murmur3_32 = struct {
178178 pub fn hashWithSeed(str: []const u8, seed: u32) u32 {
179179 const c1: u32 = 0xcc9e2d51;
180180 const c2: u32 = 0x1b873593;
181 const len = @intCast(u32, str.len);
181 const len = @truncate(u32, str.len);
182182 var h1: u32 = seed;
183183 for (@ptrCast([*]allowzero align(1) const u32, str.ptr)[0..(len >> 2)]) |v| {
184184 var k1: u32 = v;
......@@ -255,14 +255,14 @@ pub const Murmur3_32 = struct {
255255 const len: u32 = 8;
256256 var h1: u32 = seed;
257257 var k1: u32 = undefined;
258 k1 = @intCast(u32, v & 0xffffffff) *% c1;
258 k1 = @truncate(u32, v) *% c1;
259259 k1 = rotl32(k1, 15);
260260 k1 *%= c2;
261261 h1 ^= k1;
262262 h1 = rotl32(h1, 13);
263263 h1 *%= 5;
264264 h1 +%= 0xe6546b64;
265 k1 = @intCast(u32, v >> 32) *% c1;
265 k1 = @truncate(u32, v >> 32) *% c1;
266266 k1 = rotl32(k1, 15);
267267 k1 *%= c2;
268268 h1 ^= k1;
......@@ -291,7 +291,7 @@ fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 {
291291
292292 var i: u32 = 0;
293293 while (i < 256) : (i += 1) {
294 key[i] = @intCast(u8, i);
294 key[i] = @truncate(u8, i);
295295
296296 var h = hash_fn(key[0..i], 256 - i);
297297 if (builtin.endian == builtin.Endian.Big)
......@@ -299,7 +299,7 @@ fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 {
299299 @memcpy(@ptrCast([*]u8, &hashes[i * hashbytes]), @ptrCast([*]u8, &h), hashbytes);
300300 }
301301
302 return @intCast(u32, hash_fn(hashes, 0) & 0xffffffff);
302 return @truncate(u32, hash_fn(hashes, 0));
303303}
304304
305305test "murmur2_32" {