finished translation MATLAB --> R,C ; start debugging...
[valse.git] / src / sources / utils.h
diff --git a/src/sources/utils.h b/src/sources/utils.h
new file mode 100644 (file)
index 0000000..0c5a8d8
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef valse_utils_H
+#define valse_utils_H
+
+/*******************
+ * tune parallelism
+ *******************/
+
+// Number of OpenMP threads
+#define OMP_NUM_THREADS 8
+
+// CHUNK_SIZE = number of lambda values to be treated sequentially by a single core
+#define CHUNK_SIZE 1
+
+/*******************************
+ * Matrix and arrays indexation
+ *******************************/
+
+// Matrix Index ; TODO? ncol unused
+#define mi(i,j,nrow,ncol)\
+       j*nrow + i
+
+// Array Index ; TODO? d3 unused
+#define ai(i,j,k,d1,d2,d3)\
+       k*d1*d2 + j*d1 + i
+
+// Array4 Index ; TODO? ...
+#define ai4(i,j,k,m,d1,d2,d3,d4)\
+       m*d1*d2*d3 + k*d1*d2 + j*d1 + i
+
+// Array5 Index ; TODO? ...
+#define ai5(i,j,k,m,n,d1,d2,d3,d4,d5)\
+       n*d1*d2*d3*d4 + m*d1*d2*d3 + k*d1*d2 + j*d1 + i
+
+/*************************
+ * Array copy & "zeroing"
+ ************************/
+
+// Fill an array with zeros
+#define zeroArray(array, size)\
+{\
+       for (int u=0; u<size; u++)\
+               array[u] = 0;\
+}
+
+// Copy an 1D array
+#define copyArray(array, copy, size)\
+{\
+       for (int u=0; u<size; u++)\
+               copy[u] = array[u];\
+}
+
+#endif