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"); }
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"; } }
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"); } } } } }