Skip to content

Commit b91de58

Browse files
author
Chaluvadi
committed
added common example
1 parent 1e67b62 commit b91de58

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

examples/common/idxio.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# http://arrayfire.com/licenses/BSD-3-Clause
1010
########################################################
1111

12+
1213
def reverse_char(b):
1314
b = (b & 0xF0) >> 4 | (b & 0x0F) << 4
1415
b = (b & 0xCC) >> 2 | (b & 0x33) << 2
@@ -18,23 +19,23 @@ def reverse_char(b):
1819

1920
# http://stackoverflow.com/a/9144870/2192361
2021
def reverse(x):
21-
x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1)
22-
x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2)
23-
x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4)
24-
x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8)
25-
x = ((x >> 16) & 0xffff) | ((x & 0xffff) << 16);
22+
x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1)
23+
x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2)
24+
x = ((x >> 4) & 0x0F0F0F0F) | ((x & 0x0F0F0F0F) << 4)
25+
x = ((x >> 8) & 0x00FF00FF) | ((x & 0x00FF00FF) << 8)
26+
x = ((x >> 16) & 0xFFFF) | ((x & 0xFFFF) << 16)
2627
return x
2728

2829

2930
def read_idx(name):
30-
with open(name, 'rb') as f:
31+
with open(name, "rb") as f:
3132
# In the C++ version, bytes the size of 4 chars are being read
3233
# May not work properly in machines where a char is not 1 byte
3334
bytes_read = f.read(4)
3435
bytes_read = bytearray(bytes_read)
3536

3637
if bytes_read[2] != 8:
37-
raise RuntimeError('Unsupported data type')
38+
raise RuntimeError("Unsupported data type")
3839

3940
numdims = bytes_read[3]
4041
elemsize = 1
@@ -48,11 +49,11 @@ def read_idx(name):
4849
# Big endian to little endian
4950
for j in range(4):
5051
bytes_read[j] = reverse_char(bytes_read[j])
51-
bytes_read_int = int.from_bytes(bytes_read, 'little')
52+
bytes_read_int = int.from_bytes(bytes_read, "little")
5253
dim = reverse(bytes_read_int)
5354

54-
elem = elem * dim;
55-
dims[i] = dim;
55+
elem = elem * dim
56+
dims[i] = dim
5657

5758
# Read the data
5859
cdata = f.read(elem * elemsize)
@@ -61,13 +62,14 @@ def read_idx(name):
6162

6263
return (dims, data)
6364

64-
if __name__ == '__main__':
65+
66+
if __name__ == "__main__":
6567
# Example usage of reverse_char
66-
byte_value = 0b10101010
68+
byte_value = 0b10101010
6769
reversed_byte = reverse_char(byte_value)
6870
print(f"Original byte: {byte_value:08b}, Reversed byte: {reversed_byte:08b}")
6971

7072
# Example usage of reverse
71-
int_value = 0x12345678
73+
int_value = 0x12345678
7274
reversed_int = reverse(int_value)
73-
print(f"Original int: {int_value:032b}, Reversed int: {reversed_int:032b}")
75+
print(f"Original int: {int_value:032b}, Reversed int: {reversed_int:032b}")

0 commit comments

Comments
 (0)