41#include "ramCanvas.hpp"
44typedef mjr::ramCanvas3c8b rcT;
48 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
51 const int MAXITR = 256;
52 const int width = 1024*USCALE;
53 const int height = 1024*USCALE;
54 rcT theRamCanvas(width, height, -2.2, 0.8, -1.5, 1.5);
56# pragma omp parallel for schedule(static,1)
57 for(rcT::coordIntType y=0;y<theRamCanvas.getNumPixY();y++) {
58 for(rcT::coordIntType x=0;x<theRamCanvas.getNumPixX();x++) {
60 std::complex<mjr::ramCanvas1c64F::coordFltType> z(0.0, 0.0);
61 std::complex<mjr::ramCanvas1c64F::coordFltType> c(theRamCanvas.int2realX(x), theRamCanvas.int2realY(y));
62 std::complex<mjr::ramCanvas1c64F::coordFltType> orbit_sum(0.0, 0.0);
63 for(count=0; count<MAXITR ; count++) {
69 if (count == MAXITR) {
70 double clr = (std::arg(orbit_sum /
static_cast<double>(MAXITR)-c) + std::numbers::pi) / (2.0*std::numbers::pi);
74 theRamCanvas.drawPoint(x, y, rcT::colorType::csCColdeColdToHot::c(mjr::math::ivl::wrapCC(clr, 1.0)));
80 theRamCanvas.scaleDownMax(DSCALE);
81 theRamCanvas.writeTIFFfile(
"mandelbrot_meanOrbit.tiff");
82 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
83 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])