Ejemplo n.º 1
0
int main(int argc, const char** argv) {
    int i;
    char f[BUFSIZ]; /* intput file */
    const char *o; /* output dir */
    int Fst;
    float x0, y0, z0;
    float  x,  y,  z;
    int ix, iy, iz; /* periodic image index */
    i = 1;
    X = atof(argv[i++]);
    Y = atof(argv[i++]);
    Z = atof(argv[i++]);
    o = argv[i++];
    
    ix = iy = iz = 0;
    Fst = 1;
    while (fline(/**/ f) != NULL) {
        if (Fst) {
            Fst = 0;
            read_fst(f);
            compute_cm(/**/ &x, &y, &z);
        } else {
            read_rst(f);
            compute_cm(/**/  &x,  &y,  &z);
            upd_img(x, y, z, x0, y0, z0, /*io*/
                    &ix, &iy, &iz);
            shift(ix, iy, iz);
        }
        write_file(o);
        x0 = x; y0 = y; z0 = z;
    }
    if (Fst) fprintf(stderr, "ply2pbc0: warning: no input files\n");
}
Ejemplo n.º 2
0
void print_results(vector<double>inputs_inches) {
    double input_inches;
    double output_cm;
    for (int i = 0; i < inputs_inches.size(); i++) {
        input_inches = inputs_inches[i];
        output_cm = compute_cm(input_inches);
        cout << input_inches << "in=" << output_cm << "cm\n";

    }
}
Ejemplo n.º 3
0
void print_histogram(FILE *fout, HISTOGRAM *h, int rez, int indent)
{
  int numb; /* The number of bins that have data. */
  int minb=0; /* The lowest index of a bin with data. */
  int maxb=0; /* The highest index of a bin with data. */
  register int cm, cs;
  int prec = 6; /* the field width used to print the bin size  */
  int proc = 6; /* the field width used to print the frequency */
  int single;
  register int ib;

#ifdef DEBUG
  printf("h->cnt = %d\n",h->cnt);
  printf("h->filled = %d\n",h->filled);
#endif

  if (h->cnt == 0)
    { return ;}

#ifdef DEBUG3
  {
    int is;
    for (is = 0; is < MIN((h->cnt),(h->nsample)); is++) {
      DataType *data;
      fprintf(fout," %d : %d ",is,h->thescore[is]);
      if(h->datasize) {
#ifdef USE_CUSTOM_INDEXING
	data = (h->indexdata)(h->sample_data,is);
#else
	assert(is >= 0 && is < h->nbucket);
	data = getData(h->sample_data,h->datasize,is);
#endif
	(h->printdata)(fout,data);
      }
      fprintf(fout,"\n");
    }
  }
#endif

  if (! h->filled)
    { fill(h);}

  numb = 0;
  for (ib = 0; ib < h->nbucket; ib++) {
    int icnt;
    icnt   =  h->bucket_cnt[ib];
    if(icnt > 0)
      { if (numb == 0) minb = ib;
        numb += 1;
        maxb = ib;
#ifdef DEBUG3
	fprintf(fout," %d : %d ",ib, icnt);
	if(h->datasize) {
	  DataType *data;
#if 0
	  data = (h->indexdata)(h->bucket_data,ib);
#else
	  assert(ib >= 0 && ib < h->nbucket);
	  data = getData(h->bucket_data,h->datasize,ib);
#endif
	  (h->printdata)(fout,data);
	}
	fprintf(fout,"\n");
#endif
      }
  }
#ifdef DEBUG
  h->bucket_width = (h->hgh-h->low-1)/(h->nbucket) + 1;
  printf("numb,minb,maxb = %d,%d,%d\n",numb,minb,maxb);
  printf("h->sync,h->low,h->bucket_width = %d,%d,%d\n",
	 h->sync,h->low,h->bucket_width);
#endif
  cm = compute_cm(h, rez, numb);
  cs = (h->sync - h->low)/h->bucket_width;
  //  printf("1* cm,cs = %d,%d\n",cm,cs);
  if (cs > 0) {
    cs = cs%cm - cm;
  } else {
    cs = - ( (-cs)%cm );
  }
  //  printf("2* cm,cs = %d,%d\n",cm,cs);
  cs += ((h->nbucket - cs)/cm+1)*cm;
  //  printf("3* cm,cs = %d,%d\n",cm,cs);

#ifdef DEBUG
  printf("cm,cs = %d,%d\n",cm,cs);
#endif

#ifdef NEVER
  prec = compute_precision(h,minb,maxb);
  proc = compute_proc(h,cs,cm);
#endif

  single = (cm*h->bucket_width == 1);
  single = FALSE;
  if (single)
    { if (prec >= indent) indent = prec+1; }
  else
    { if (2*prec + 3 >= indent) indent = 2*prec+4; }

  if(h->datasize) {
    assert(cm == 1);
  }
  for (ib = cs; ib+cm >= 1; ib -= cm) {
    int j;
    int sum_of_cnt = 0;
    int min_score, max_score;

#ifdef NEXT
    (h->cleardata)(h->temp_data);

    min_score = (h->low) + ib*(h->bucket_width);
    max_score = (h->low) + (ib+cm)*(h->bucket_width) - 1;
#endif

    min_score = h->bucket_min[ib];
    max_score = h->bucket_max[ib];
    min_score = MAX(min_score,h->min);
    max_score = MIN(max_score,h->max);
    for (j = 0; j < cm; j++) {
      if( (ib+j >= 0) && (ib+j < h->nbucket) )
	{
	  sum_of_cnt += h->bucket_cnt[ib+j];
	  min_score = MIN(min_score,h->bucket_min[ib+j]);
	  max_score = MAX(max_score,h->bucket_max[ib+j]);
	  if(h->datasize) {
	    DataType *data;
#ifdef USE_CUSTOM_INDEXING
	    data = (h->indexdata)(h->bucket_data,ib+j);
#else
	    assert((ib+j) >= 0 && (ib+j) < h->nbucket);
	    data = getData(h->bucket_data,h->datasize,ib+j);
#endif
	    //	    fprintf(stderr,"* j = %d ib + j = %d data = 0x%x min %d max %d\n", j,ib + j,
	    //    data, min_score, max_score);
	    if( j == 0 ) {
#ifdef USE_CUSTOM_INDEXING
	      (h->setdata)(h->temp_data,0,data);
#else
	      memcpy(h->temp_data, data, h->datasize);
	      //setData(h->temp_data, h->datasize, 0, data);
#endif
	    } else {
	      (h->aggregate)(h->temp_data,0,data);
	    }
	  }
	}
      if(h->datasize) {
	if( ib == cs ) {
#ifdef USE_CUSTOM_INDEXING
	  (h->setdata)(h->scan_data,0,h->temp_data);
#else
	  memcpy(h->scan_data, h->temp_data, h->datasize);
	  // setData(h->scan_data, h->datasize, 0, h->temp_data);
#endif
	} else {
	  (h->aggregate)(h->scan_data,0,h->temp_data);
	}
      }

    if (sum_of_cnt > 0)
      {
	//	fprintf(stderr,"* single %d min %d max %d sum_of_cnt = %d\n",
	//single, min_score, max_score, sum_of_cnt);
	if(single || (min_score == max_score)) {
	  fprintf(fout, "%*s%*d: %*d ",indent-prec,
		  "",prec,min_score,proc,sum_of_cnt);
	  if(h->datasize) {
	    (h->printdata)(fout,h->temp_data,h->scan_data,h->aggr_data);
	  }
	  fprintf(fout,"\n");
	} else {
	  fprintf(fout,"%*s%*d - %*d: %*d ",
		  indent-2*prec-3,"",
		  prec,min_score,prec,max_score,proc,sum_of_cnt);
	  if(h->datasize) {
	    (h->printdata)(fout,h->temp_data,h->scan_data,h->aggr_data);
	  }
	  fprintf(fout,"\n");
	}
      }
  }
  }
}