Change cast syntax, int(x), []byte(s), (^int)(p)

This commit is contained in:
Ginger Bill
2017-01-17 23:36:07 +00:00
parent 367d307dc4
commit 2af9fb79dc
17 changed files with 529 additions and 356 deletions
+31 -31
View File
@@ -1,58 +1,58 @@
crc32 :: proc(data: rawptr, len: int) -> u32 {
result := ~(0 as u32);
s := slice_ptr(data as ^u8, len);
result := ~u32(0);
s := slice_ptr((^u8)(data), len);
for i : 0..<len {
b := s[i] as u32;
b := u32(s[i]);
result = result>>8 ~ __CRC32_TABLE[(result ~ b) & 0xff];
}
return ~result;
}
crc64 :: proc(data: rawptr, len: int) -> u64 {
result := ~(0 as u64);
s := slice_ptr(data as ^u8, len);
result := ~u64(0);
s := slice_ptr((^u8)(data), len);
for i : 0..<len {
b := s[i] as u64;
b := u64(s[i]);
result = result>>8 ~ __CRC64_TABLE[(result ~ b) & 0xff];
}
return ~result;
}
fnv32 :: proc(data: rawptr, len: int) -> u32 {
s := slice_ptr(data as ^u8, len);
s := slice_ptr((^u8)(data), len);
h: u32 = 0x811c9dc5;
for i : 0..<len {
h = (h * 0x01000193) ~ s[i] as u32;
h = (h * 0x01000193) ~ u32(s[i]);
}
return h;
}
fnv64 :: proc(data: rawptr, len: int) -> u64 {
s := slice_ptr(data as ^u8, len);
s := slice_ptr((^u8)(data), len);
h: u64 = 0xcbf29ce484222325;
for i : 0..<len {
h = (h * 0x100000001b3) ~ s[i] as u64;
h = (h * 0x100000001b3) ~ u64(s[i]);
}
return h;
}
fnv32a :: proc(data: rawptr, len: int) -> u32 {
s := slice_ptr(data as ^u8, len);
s := slice_ptr((^u8)(data), len);
h: u32 = 0x811c9dc5;
for i : 0..<len {
h = (h ~ s[i] as u32) * 0x01000193;
h = (h ~ u32(s[i])) * 0x01000193;
}
return h;
}
fnv64a :: proc(data: rawptr, len: int) -> u64 {
s := slice_ptr(data as ^u8, len);
s := slice_ptr((^u8)(data), len);
h :u64 = 0xcbf29ce484222325;
for i : 0..<len {
h = (h ~ s[i] as u64) * 0x100000001b3;
h = (h ~ u64(s[i])) * 0x100000001b3;
}
return h;
}
@@ -65,10 +65,10 @@ murmur64 :: proc(data_: rawptr, len: int) -> u64 {
m :: 0xc6a4a7935bd1e995;
r :: 47;
h: u64 = SEED ~ (len as u64 * m);
h: u64 = SEED ~ (u64(len) * m);
data := slice_ptr(data_ as ^u64, len/size_of(u64));
data2 := slice_ptr(data_ as ^u8, len);
data := slice_ptr((^u64)(data_), len/size_of(u64));
data2 := slice_ptr((^u8)(data_), len);
for i : 0 ..< data.count {
k := data[i];
@@ -82,14 +82,14 @@ murmur64 :: proc(data_: rawptr, len: int) -> u64 {
}
match len & 7 {
case 7: h ~= data2[6] as u64 << 48; fallthrough;
case 6: h ~= data2[5] as u64 << 40; fallthrough;
case 5: h ~= data2[4] as u64 << 32; fallthrough;
case 4: h ~= data2[3] as u64 << 24; fallthrough;
case 3: h ~= data2[2] as u64 << 16; fallthrough;
case 2: h ~= data2[1] as u64 << 8; fallthrough;
case 7: h ~= u64(data2[6]) << 48; fallthrough;
case 6: h ~= u64(data2[5]) << 40; fallthrough;
case 5: h ~= u64(data2[4]) << 32; fallthrough;
case 4: h ~= u64(data2[3]) << 24; fallthrough;
case 3: h ~= u64(data2[2]) << 16; fallthrough;
case 2: h ~= u64(data2[1]) << 8; fallthrough;
case 1:
h ~= data2[0] as u64;
h ~= u64(data2[0]);
h *= m;
}
@@ -102,10 +102,10 @@ murmur64 :: proc(data_: rawptr, len: int) -> u64 {
m :: 0x5bd1e995;
r :: 24;
h1: u32 = SEED as u32 ~ len as u32;
h1: u32 = u32(SEED) ~ u32(len);
h2: u32 = SEED >> 32;
data := slice_ptr(data_ as ^u32, len/size_of(u32));
data := slice_ptr((^u32)(data_), len/size_of(u32));
i := 0;
while len >= 8 {
@@ -138,13 +138,13 @@ murmur64 :: proc(data_: rawptr, len: int) -> u64 {
len -= 4;
}
data8 := slice_ptr((data.data+i) as ^u8, 3); // NOTE(bill): This is unsafe
data8 := slice_ptr((^u8)(data.data+i), 3); // NOTE(bill): This is unsafe
match len {
case 3: h2 ~= data8[2] as u32 << 16; fallthrough;
case 2: h2 ~= data8[1] as u32 << 8; fallthrough;
case 3: h2 ~= u32(data8[2]) << 16; fallthrough;
case 2: h2 ~= u32(data8[1]) << 8; fallthrough;
case 1:
h2 ~= data8[0] as u32;
h2 ~= u32(data8[0]);
h2 *= m;
}
@@ -157,7 +157,7 @@ murmur64 :: proc(data_: rawptr, len: int) -> u64 {
h2 ~= h1>>19;
h2 *= m;
h := (h1 as u64)<<32 | h2 as u64;
h := u64(h1)<<32 | u64(h2);
return h;
}
}