37#include "ramCanvas.hpp"
38#include "MRMathIVL.hpp"
42 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
43 mjr::ramCanvas3c8b::csIntType count;
44 const int NUMITR = 1024;
45 std::complex<double> c, z, zero(0.0, 0.0);
46 mjr::ramCanvas3c8b theRamCanvas(7680, 7680, -2.2, 0.8, -1.5, 1.5);
48#pragma omp parallel for private(c, z, count) schedule(static,1)
49 for(
int y=0;y<theRamCanvas.getNumPixY();y++) {
50 for(
int x=0;x<theRamCanvas.getNumPixX();x++) {
51 for(c=std::complex<mjr::ramCanvas3c8b::coordFltType>(theRamCanvas.int2realX(x),theRamCanvas.int2realY(y)),z=zero,count=0; (std::norm(z)<4)&&(count<=NUMITR); count++,z=z*z+c)
54 theRamCanvas.drawPoint(x, y, mjr::ramCanvas3c8b::colorType::csCColdeFireRamp::c(
static_cast<mjr::ramCanvas3c8b::csIntType
>(mjr::math::ivl::wrapCC(count*20, 767))));
57 theRamCanvas.writeTIFFfile(
"mandelbrot_bm_cplx_openmp.tiff");
58 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
59 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])