be3a72fb215a2b1f7b100794d007ca1021a507a7
[valse.git] / pkg / src / sources / utils.h
1 #ifndef valse_utils_H
2 #define valse_utils_H
3
4 //#include <stdint.h>
5
6 /********
7 * Types
8 *******/
9
10 typedef double Real;
11 //typedef uint32_t UInt;
12 //typedef int32_t Int;
13
14 /*******************************
15 * Matrix and arrays indexation
16 *******************************/
17
18 // Matrix Index ; TODO? ncol unused
19 #define mi(i,j,nrow,ncol)\
20 j*nrow + i
21
22 // Array Index ; TODO? d3 unused
23 #define ai(i,j,k,d1,d2,d3)\
24 k*d1*d2 + j*d1 + i
25
26 // Array4 Index ; TODO? ...
27 #define ai4(i,j,k,m,d1,d2,d3,d4)\
28 m*d1*d2*d3 + k*d1*d2 + j*d1 + i
29
30 /*************************
31 * Array copy & "zeroing"
32 ************************/
33
34 // Fill an array with zeros
35 #define zeroArray(array, size)\
36 {\
37 for (int u=0; u<size; u++)\
38 array[u] = 0;\
39 }
40
41 // Copy an 1D array
42 #define copyArray(array, copy, size)\
43 {\
44 for (int u=0; u<size; u++)\
45 copy[u] = array[u];\
46 }
47
48 #endif