Beispiel #1
0
Datei: p3.c Projekt: kota395/ip
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;
}
Beispiel #2
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;
}