int main(int argc,char**argv){ Image *dst,*src,*dst3; char filename[256]; src=ImageRead(argv[1]); dst=ImageAlloc(src->W,src->H); dst3=ImageAlloc(src->W*3,src->H*3); Process(dst,src); sprintf(filename,"p1_%s.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src,100); sprintf(filename,"p2_%s_r00.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src, 10); sprintf(filename,"p2_%s_0g0.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src, 1); sprintf(filename,"p2_%s_00b.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src,110); sprintf(filename,"p2_%s_rg0.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src, 11); sprintf(filename,"p2_%s_0gb.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src,101); sprintf(filename,"p2_%s_r0b.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process2(dst,src,111); sprintf(filename,"p2_%s_rgb.%s",argv[2],argv[3]); ImageWrite(filename,dst); memset(filename,'0',sizeof(filename)); Process3(dst3,src,3); sprintf(filename,"p3_%s.%s",argv[2],argv[3]); ImageWrite(filename,dst3); memset(filename,'0',sizeof(filename)); return 0; }
void testParallel2() { const int top = 10000; std::vector<int> range; for (int i = 0; i < top; ++i) range.push_back(i); std::random_shuffle(range.begin(), range.end()); int numThreads = Galois::setActiveThreads(2); if (numThreads < 2) { assert(0 && "Unable to run with multiple threads"); abort(); } Galois::FCPairingHeap<int> heap; Galois::for_each(range.begin(), range.end(), Process2(heap)); for (int i = 0; i < top; ++i) { check(__func__, heap.pollMin(), i); } }
int main(int argc, char* argv[]) { #ifdef MEMDEBUG atexit(&DumpUnfreed); #endif if (argc < 3) myerror("Usage: corrnn datafile randfiles"); dbgout = new std::ofstream("nn.debug"); std::ifstream fin(argv[1]); std::ifstream randlistfin(argv[2]); std::vector<NCellData> data; dbg << "Read gals\n"; Read(fin,minsep,binsize,data); NCell wholefield(data); dbg << "ngals = "<<data.size(); dbg << "Read rand fields\n"; int nrandfields; randlistfin >> nrandfields; if (!randlistfin) myerror("reading randlistfile ",argv[2]); if (!(nrandfields > 0)) myerror("no random fields"); std::vector<std::vector<NCellData> > randdata(nrandfields); std::vector<NCell*> randfield(nrandfields); for(int i=0;i<nrandfields;++i) { std::string randfieldname; randlistfin >> randfieldname; if (!randlistfin) myerror("reading randlistfile ",argv[2]); std::ifstream randfin(randfieldname.c_str()); Read(randfin,minsep,binsize,randdata[i]); randfield[i] = new NCell(randdata[i]); } dbg<<"nbins = "<<nbins<<": min,maxsep = "<<minsep<<','<<maxsep<<std::endl; std::vector<BinData2<1,1> > DD(nbins), RR(nbins), DR(nbins); Process2(DD,minsep,maxsep,minsepsq,maxsepsq,wholefield); for(int k=0;k<nbins;++k) DD[k].npair *= 2; for(int i=0;i<nrandfields;++i) { dbg<<"rand: i = "<<i<<std::endl; Process2(RR,minsep,maxsep,minsepsq,maxsepsq,*randfield[i]); Process11(DR,minsep,maxsep,minsepsq,maxsepsq,wholefield,*randfield[i]); } for(int k=0;k<nbins;++k) RR[k].npair *= 2; int ndr = nrandfields; int nrr = nrandfields; #ifdef DOCROSSRAND for(int i=0;i<nrandfields;++i) { for(int j=i+1;j<nrandfields;++j) { dbg<<"j = "<<j<<std::endl; Process11(RR,minsep,maxsep,minsepsq,maxsepsq, *randfield[i],*randfield[j]); ++nrr; } } #endif dbg<<"done process DD,DR,RR data\n"; for(int i=0;i<nbins;++i) { dbg<<"RR["<<i<<"] = "<<RR[i].npair<<", DD = "<<DD[i].npair<<", DR = "<<DR[i].npair<<std::endl; RR[i].npair /= nrr; DR[i].npair /= ndr; } dbg<<"done divide by number of realizations\n"; std::ofstream fout("nn.out"); WriteNN(fout,minsep,binsize,DD,DR,RR,nrr); dbg<<"done write"<<std::endl; if (dbgout && dbgout != &std::cout) { delete dbgout; dbgout=0; } return 0; }
int main(int argc, char* argv[]) { #ifdef MEMDEBUG atexit(&DumpUnfreed); #endif if (argc < 2 || argc > 3) myerror("Usage: corree_multi filename"); dbgout = &std::cout; std::ifstream fin(argv[1]); double vare=0.; std::vector<CellData> celldata; std::vector<std::vector<CellData> > expcelldata; Read(fin,minsep,binsize,celldata,expcelldata,vare); dbg<<"ngal = "<<celldata.size()<<std::endl; dbg<<"nexp = "<<expcelldata.size()<<std::endl; dbg<<"vare = "<<vare<<": sig_sn (per component) = "<<sqrt(vare)<<std::endl; dbg<<"nbins = "<<nbins<<": min,maxsep = "<<minsep<<','<<maxsep<<std::endl; Cell wholefield(celldata); std::vector<Cell*> exposures; double maxexpsize = 0.; for(int i=0;i<int(expcelldata.size());++i) if(expcelldata[i].size()>0) { exposures.push_back(new Cell(expcelldata[i])); double size = exposures.back()->getSize(); dbg<<"size("<<i<<") = "<<size<<" "<<maxexpsize<<std::endl; if (size > maxexpsize) maxexpsize = size; } // *2 to get diameter, rather than radius dbg<<"max size = "<<2*maxexpsize<<std::endl; // round up to the next bin size const int k1 = int(floor((log(2*maxexpsize) - logminsep)/binsize))+1; maxexpsize = exp(k1*binsize+logminsep); dbg<<"max size = "<<maxexpsize<<std::endl; double maxexpsizesq = maxexpsize*maxexpsize; std::vector<BinData2<3,3> > data(nbins); for(int i=0;i<int(exposures.size());++i) for(int j=0;j<int(exposures.size());++j) if (i!=j) { dbg<<"i,j = "<<i<<','<<j<<std::endl; Process11(data,minsep,maxexpsize,minsepsq,maxexpsizesq, *exposures[i],*exposures[j]); } Process2(data,maxexpsize,maxsep,maxexpsizesq,maxsepsq,wholefield); // Process2(data,minsep,maxsep,minsepsq,maxsepsq,wholefield); FinalizeProcess(data,vare); dbg<<"done processing\n"; std::ofstream e2out("e2.out"); std::ofstream m2out("m2.out"); WriteEE(e2out,minsep,binsize,smoothscale,data); WriteM2(m2out,minsep,binsize,data); for(int i=0;i<int(exposures.size());++i) delete exposures[i]; if (dbgout && dbgout != &std::cout) { delete dbgout; dbgout=0; } return 0; }