Remplacement des 'powf(a, 2)' par 'a*a'.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / 03_Newton / moo / host / Newton.cu
index 685fb5e..a468b05 100755 (executable)
@@ -5,18 +5,17 @@ using namespace std;
 \r
 #include "Newton.h"\r
 #include "Device.h"\r
-\r
-extern __global__ void newton(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath);\r
+#include "NewtonDevice.h"\r
 \r
 Newton::Newton(int w, int h)\r
-    : variateurAnimation(IntervalF(30, 100), 1),\r
+    : variateurN(IntervalI(5, 1000), 1),\r
+      variateurEpsilon(IntervalF(0.01, 10), 0.01),\r
       w(w), h(h),\r
       dg(8, 8, 1),\r
-      db(16, 16, 1),\r
+      db(32, 32, 1),\r
       ptrDomaineMathInit(new DomaineMath(-2, -2, 2, 2)),\r
       title("Fractal Newton")\r
     {\r
-    // print(dg, db);\r
     Device::assertDim(dg, db);\r
     }\r
 \r
@@ -27,12 +26,15 @@ Newton::~Newton()
 \r
 void Newton::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)\r
     {\r
-    newton<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath);\r
+    newton<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, this->t, this->epsilon);\r
+\r
+    HANDLE_ERROR(cudaDeviceSynchronize()); // Pour flusher les 'printf' (pour le DEBUG).\r
     }\r
 \r
 void Newton::animationStep()\r
     {\r
-    this->t = this->variateurAnimation.varierAndGet();\r
+    this->t = this->variateurN.varierAndGet();\r
+    this->epsilon = this->variateurEpsilon.varierAndGet();\r
     }\r
 \r
 int Newton::getW()\r
@@ -52,7 +54,7 @@ DomaineMath* Newton::getDomaineMathInit()
 \r
 float Newton::getT()\r
     {\r
-    return 0;\r
+    return this->t;\r
     }\r
 \r
 string Newton::getTitle()\r