45#include "ramCanvas.hpp"
48typedef mjr::ramCanvas3c8b rcT;
52 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
55 const int MAXITR = 100;
56 const int width = 1024*USCALE;
57 const int height = 1024*USCALE;
58 rcT theRamCanvas(width, height, -1.0, 1.0, -2.6, 0.0);
61# pragma omp parallel for schedule(static,1)
62 for(rcT::coordIntType y=0;y<theRamCanvas.getNumPixY();y++) {
63 for(rcT::coordIntType x=0;x<theRamCanvas.getNumPixX();x++) {
65 std::complex<rcT::coordFltType> z(0.0, 0.0);
66 std::complex<rcT::coordFltType> c(theRamCanvas.int2realX(x), theRamCanvas.int2realY(y));
67 std::complex<rcT::coordFltType> orbit_sum(0.0, 0.0);
68 for(count=0; count<MAXITR ; count++) {
70 z = std::log(std::complex<rcT::coordFltType>(std::real(z), std::abs(std::imag(z))) + c);
72 if (count == MAXITR) {
74 double clr = std::abs(orbit_sum /
static_cast<double>(MAXITR)-c);
76 theRamCanvas.drawPoint(x, y, rcT::colorType::csCColdeColdToHot::c(mjr::math::ivl::wrapCC(clr, 1.0)));
82 theRamCanvas.scaleDownMax(DSCALE);
83 theRamCanvas.writeTIFFfile(
"feather.tiff");
84 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
85 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])