#include <iostream>\r
#include <assert.h>\r
+#include <stdio.h>\r
+using namespace std;\r
\r
#include "Newton.h"\r
#include "Device.h"\r
+#include "NewtonDevice.h"\r
\r
-using std::cout;\r
-using std::endl;\r
-\r
-extern __global__ void newton(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath);\r
-\r
-Newton::Newton(int w, int h)\r
- : variateurAnimation(IntervalF(30, 100), 1),\r
- w(w), h(h),\r
- dg(8, 8, 1),\r
- db(16, 16, 1),\r
- title("Fractal Newton")\r
+Newton::Newton(int w, int h) :\r
+ variateurEpsilon(IntervalF(0.01, 1), 0.001),\r
+ w(w),\r
+ h(h),\r
+ dg(8, 8, 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
\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, 100, 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->epsilon = this->variateurEpsilon.varierAndGet();\r
}\r
\r
int Newton::getW()\r
\r
float Newton::getT()\r
{\r
- return 0;\r
+ return this->epsilon;\r
+ }\r
+\r
+string Newton::getTName()\r
+ {\r
+ return "epsilon : ";\r
}\r
\r
string Newton::getTitle()\r