35#include "ramCanvas.hpp"
36#include "MRMathCPLX.hpp"
39typedef mjr::ramCanvas3c8b::colorType ct;
43 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
45 const int width = 7680/4;
46 const int height = 7680/4;
47 const double ar =
static_cast<double>(width) /
static_cast<double>(height);
48 const int MAXITR = 1024;
49 const double MAXZSQ = 14.0;
51 mjr::ramCanvas3c8b theRamCanvas(width, height, -2.0, 2.0, -2.0, 2.0);
53#pragma omp parallel for schedule(static,1)
54 for(
int y=0;y<theRamCanvas.getNumPixY();y++) {
55 for(
int x=0;x<theRamCanvas.getNumPixX();x++) {
56 std::complex<double> c = theRamCanvas.int2real(x, y);
57 std::complex<double> z(0.0, 0.0);
59 while((std::norm(z)<MAXZSQ) && (count<=MAXITR)) {
64 z = std::pow(std::conj(z), 2) + c ;
69 theRamCanvas.drawPoint(x, y, ct::csCColdeFireRamp::c(
static_cast<ct::csIntType
>(count*10)));
72 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
73 theRamCanvas.writeTIFFfile(
"working.tiff");
75 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])