Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BilatTools_Cuda / src / core / cudatools / header / device / Indice1D.h
diff --git a/WCudaMSE/BilatTools_Cuda/src/core/cudatools/header/device/Indice1D.h b/WCudaMSE/BilatTools_Cuda/src/core/cudatools/header/device/Indice1D.h
new file mode 100755 (executable)
index 0000000..64ded10
--- /dev/null
@@ -0,0 +1,97 @@
+#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