X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2Fsources%2Futils.h;fp=src%2Fsources%2Futils.h;h=0c5a8d826dc64acf96cd5664ff06cd31e677dd43;hb=8e92c49c15bdacebf46190e7c8279bd227873928;hp=0000000000000000000000000000000000000000;hpb=3ec579a0955aca0591a9e5c4d90c50b87f4f4609;p=valse.git diff --git a/src/sources/utils.h b/src/sources/utils.h new file mode 100644 index 0000000..0c5a8d8 --- /dev/null +++ b/src/sources/utils.h @@ -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