Remplacement des 'powf(a, 2)' par 'a*a'.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / 03_Newton / moo / device / NewtonDevice.cu
1 #include <iostream>\r
2 #include <stdio.h>\r
3 using namespace std;\r
4 \r
5 #include "NewtonDevice.h"\r
6 \r
7 #include "Indice2D.h"\r
8 #include "IndiceTools.h"\r
9 #include "cudaTools.h"\r
10 #include "Device.h"\r
11 \r
12 #include "NewtonMath.h"\r
13 \r
14 __global__\r
15 void newton(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float epsilon)\r
16     {\r
17     const int TID = Indice2D::tid();\r
18     const int NB_THREAD = Indice2D::nbThread();\r
19     const int WH = w * h;\r
20 \r
21     NewtonMath newtonMath(n, epsilon);\r
22 \r
23     uchar4 color;\r
24     color.w = 255; // Par défaut, l'image est opaque.\r
25 \r
26     double x, y;\r
27     int pixelI, pixelJ;\r
28 \r
29     int s = TID;\r
30     while (s < WH)\r
31         {\r
32         IndiceTools::toIJ(s, w, &pixelI, &pixelJ); // update (pixelI, pixelJ)\r
33 \r
34         // (i,j) domaine écran.\r
35         // (x,y) domaine math.\r
36         domaineMath.toXY(pixelI, pixelJ, &x, &y); // (i,j) -> (x,y).\r
37 \r
38         newtonMath.colorXY(&color, x, y);\r
39 \r
40         ptrDevPixels[s] = color;\r
41 \r
42         s += NB_THREAD;\r
43         }\r
44     }\r