--- /dev/null
+#ifndef INDICE_1D\r
+#define INDICE_1D\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+class Indice1D\r
+ {\r
+\r
+ /*--------------------------------------*\\r
+ |* Constructor *|\r
+ \*-------------------------------------*/\r
+\r
+ public:\r
+\r
+ /*--------------------------------------*\\r
+ |* Methodes *|\r
+ \*-------------------------------------*/\r
+\r
+ public:\r
+\r
+ /*------------------*\\r
+ |* tid *|\r
+ \*-----------------*/\r
+\r
+ /**\r
+ * i in [0,nbThreadX-1]\r
+ * i=threadIdx.y + (blockDim.y * blockIdx.y)\r
+ */\r
+ __device__\r
+ static int tid()\r
+ {\r
+ return threadIdx.x + (blockDim.x * blockIdx.x);\r
+ }\r
+\r
+ /**\r
+ * output in [0,nbThreadBlock()[\r
+ * return threadIdx;\r
+ */\r
+ __device__\r
+ static int tidLocalBlock()\r
+ {\r
+ return threadIdx.x;\r
+ }\r
+\r
+ /**\r
+ * idem tidLocalBlock\r
+ */\r
+ __device__\r
+ static int tidBlock()\r
+ {\r
+ return threadIdx.x;\r
+ }\r
+\r
+ /**\r
+ * idem tidLocalBlock\r
+ */\r
+ __device__\r
+ static int tidLocal()\r
+ {\r
+ return threadIdx.x;\r
+ }\r
+\r
+ /*------------------*\\r
+ |* nbThread *|\r
+ \*-------------------*/\r
+\r
+ __device__\r
+ static int nbThread()\r
+ {\r
+ return gridDim.x * blockDim.x;\r
+ }\r
+\r
+ __device__\r
+ static int nbThreadBlock()\r
+ {\r
+ return blockDim.x;\r
+ }\r
+\r
+ /*--------------------------------------*\\r
+ |* Attributs *|\r
+ \*-------------------------------------*/\r
+\r
+ private:\r
+\r
+ };\r
+\r
+#endif \r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r