Diff of /Adj_Logic.py [000000] .. [b52eda]

Switch to side-by-side view

--- a
+++ b/Adj_Logic.py
@@ -0,0 +1,51 @@
+import numpy as np
+from tqdm import tqdm
+
+def Calculate_Index(i: int, j: int, n_cols: int) -> int:
+    return n_cols * i + j * (i % 2 == 0) + (n_cols - 1 - j) * (i % 2 == 1)
+
+def Generate_Adj_Matrix(n_cols: int) -> np.ndarray:
+    row_array = np.zeros(8 * 512 * n_cols, dtype = np.uint32)
+    col_array = np.zeros(8 * 512 * n_cols, dtype = np.uint32)
+
+    for i in range(0, 512):
+        index = 8 * i * n_cols if i % 2 == 0 else 8 * (i + 1) * n_cols - 1
+
+        for j in range(0, n_cols):
+            mask = list(range(index, index + 8)) if i % 2 == 0 else list(range(index, index - 8, -1))
+            mask.sort()
+
+            row_array[mask] = Calculate_Index(i, j, n_cols)
+
+            i_m = 511 if i == 0 else i - 1
+            i_p = 0 if i == 511 else i + 1
+            
+            j_m = n_cols - 1 if j == 0 else j - 1
+            j_p = 0 if j == n_cols - 1 else j + 1
+            
+            con_indices = np.array([Calculate_Index(i, j_m, n_cols),
+                                    Calculate_Index(i_m, j_m, n_cols),
+                                    Calculate_Index(i_m, j, n_cols),
+                                    Calculate_Index(i_m, j_p, n_cols),
+                                    Calculate_Index(i, j_p, n_cols),
+                                    Calculate_Index(i_p, j_p, n_cols),
+                                    Calculate_Index(i_p, j, n_cols),
+                                    Calculate_Index(i_p, j_m, n_cols)],
+                                    dtype = np.uint32)
+            con_indices.sort()
+
+            col_array[mask] = con_indices
+            index = index + 8 if i % 2 == 0 else index - 8
+
+    return np.array([row_array, col_array], dtype = np.uint32)
+
+def Generate_All_Adj_Matrices(n_cols_arr: np.ndarray) -> bool:
+    try:
+        for n_cols in tqdm(n_cols_arr):
+            adj_mat = Generate_Adj_Matrix(n_cols = n_cols)
+            np.save(file = "C:\\Users\\leotu\\OneDrive\\Documents\\ImageCHD_dataset\\ADJACENCY\\Adj_Mat_" \
+                    + str(n_cols) + ".npy", arr = adj_mat)
+        return True
+    except Exception as e:
+        print(e)
+        return False
\ No newline at end of file