6 #include "para_grp_parse.h"
15 int *kx_line,
int *ky_line,
16 int *istrt_lgrp,
int *iend_lgrp,
int *npts_lgrp,
18 int *kx_str_lgrp,
int *kx_end_lgrp,
19 int *ky_str_lgrp,
int *ky_end_lgrp)
29 for(
int ibal=1;ibal<=32;ibal++){
30 int nbal = ((ibal*nplane)/32);
31 int ntarg = (nktot/nplane);
32 if(ntarg > nbal){ntarg -= nbal;}
37 for(
int i=0;i<nline;i++){
39 if( (nnow>=ntarg) && (ic<(nplane-1)) ){
41 nmin = MIN(nmin,nnow);
42 nmax = MAX(nmax,nnow);
46 nmin = MIN(nmin,nnow);
47 nmax = MAX(nmax,nnow);
48 double dev = 100.0*((double)(nmax-nmin))/((
double)MAX(nmin,1));
50 if(dev<dev_min || ibal==1){
61 int ntarg = (nktot/nplane);
62 if(ntarg > nbal_min){ntarg = ntarg-nbal_min;}
68 for(
int i=0;i<nline;i++){
69 npts_lgrp[ic] += npts[i];
71 if( (npts_lgrp[ic]>=ntarg) && (ic<(nplane-1)) ){
79 iend_lgrp[(nplane-1)] = nline;
81 for(
int i=0;i<nplane;i++){
82 kx_str_lgrp[i] = kx_line[istrt_lgrp[i]];
83 kx_end_lgrp[i] = kx_line[(iend_lgrp[i]-1)];
84 ky_str_lgrp[i] = ky_line[istrt_lgrp[i]];
85 ky_end_lgrp[i] = ky_line[(iend_lgrp[i]-1)];
92 int nmin = npts_lgrp[0];
94 for(
int i=0;i<nplane;i++){
95 nmax = MAX(nmax,npts_lgrp[i]);
96 nmin = MIN(nmin,npts_lgrp[i]);
97 nline_max = MAX(nline_lgrp[i],nline_max);
99 double dev = 100.0*((double)(nmax-nmin))/((
double)MAX(nmin,1));
100 printf(
"max=%d : min=%d : dev=%g : %d %d\n",nmax,nmin,dev,nbal_min,ibal_min);
107 int nnn = npts_lgrp[0];
108 int nc = nline_lgrp[0];
109 if(istrt_lgrp[0]!=0) {ierr++;}
110 for(
int i=1;i<nplane;i++){
111 if(iend_lgrp[(i-1)]!=istrt_lgrp[i]){ierr++;}
115 if(iend_lgrp[(nplane-1)]!=nline){ierr++;}
116 if(nc!=nline){ierr++;}
117 if(nnn!=nktot){ierr++;}
120 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
121 PRINTF(
"Error in get_plane_line_params\n");
122 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
144 PRINTF(
"Flip the Complex data!!\n");
147 for(
int i=0;i<nktot;i++){
148 if(kx[i]==0){nplane0++;}
150 int *kxt = (
int *)malloc(nplane0*
sizeof(
int));
151 int *kyt = (
int *)malloc(nplane0*
sizeof(
int));
152 int *kzt = (
int *)malloc(nplane0*
sizeof(
int));
155 for(
int i=0;i<nplane0-1;i++){
161 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
162 PRINTF(
"Error while flipping piny dblpack data set\n");
163 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
167 kxt[(nplane0-1)] = kx[(nktot-1)];
168 kyt[(nplane0-1)] = ky[(nktot-1)];
169 kzt[(nplane0-1)] = kz[(nktot-1)];
171 if(kx[(nktot-1)]!=0 || ky[(nktot-1)] || kz[(nktot-1)]){
172 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
173 PRINTF(
"Error while flipping piny dblpack data set\n");
174 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
181 for(
int i=nktot-2;i>=0;i--){
182 kx[(i+nplane0)] = kx[i];
183 ky[(i+nplane0)] = ky[i];
184 kz[(i+nplane0)] = kz[i];
192 for(
int i=0;i<nplane0-1;i++){
193 kx[i] = kxt[nplane0-i-2];
194 ky[i] = -kyt[nplane0-i-2];
195 kz[i] = -kzt[nplane0-i-2];
198 if(kx[i]!=0 || ky[i]<ky[i1]){
199 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
200 PRINTF(
"Error while flipping piny dblpack data set\n");
201 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
206 kx[(nplane0-1)] = kxt[(nplane0-1)];
207 ky[(nplane0-1)] = kyt[(nplane0-1)];
208 kz[(nplane0-1)] = kzt[(nplane0-1)];
209 if(nktot>=nplane0+1){
210 if(kx[nplane0]!= 0 || ky[nplane0]!=0 || kz[nplane0]!=1){
211 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
212 PRINTF(
"Error while flipping piny dblpack data set\n");
213 PRINTF(
"@@@@@@@@@@@@@@@@@@@@_Error_@@@@@@@@@@@@@@@@@@@@\n");
218 #ifdef _GLENN_DBG_FLIP
219 int nnn = MIN(nplane0+3,nktot);
220 for(
int i=0;i<nnn;i++){
221 PRINTF(
" %d : %d %d %d \n",i,kx[i],ky[i],kz[i]);
228 (*n_ret) = (nktot+nplane0-1);
static void get_plane_line_prms(int, int, int, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *)
functions
static void flip_data_set(int, int *, int *, int *, int *)