- Timestamp:
- Feb 2, 2010, 7:06:18 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/extsrc/gpcsw/gpcsrc/fits/burntool/persistio.c
r25299 r26764 51 51 &boxbuf[nbox].slope, &boxbuf[nbox].nfit, 52 52 &boxbuf[nbox].sxfit, &boxbuf[nbox].exfit); 53 if(boxbuf[nbox].nfit > 0) { 54 boxbuf[nbox].zero = (double *)calloc(boxbuf[nbox].nfit, sizeof(double)); 55 boxbuf[nbox].xfit = (int *)calloc(boxbuf[nbox].nfit, sizeof(int)); 56 boxbuf[nbox].yfit = (int *)calloc(boxbuf[nbox].nfit, sizeof(int)); 57 for(i=0; i<boxbuf[nbox].nfit; i++) { 53 if(ABS(boxbuf[nbox].nfit) > 0) { 54 boxbuf[nbox].zero = (double *)calloc(ABS(boxbuf[nbox].nfit), sizeof(double)); 55 boxbuf[nbox].xfit = (int *)calloc(ABS(boxbuf[nbox].nfit), sizeof(int)); 56 boxbuf[nbox].yfit = (int *)calloc(ABS(boxbuf[nbox].nfit), sizeof(int)); 57 if(boxbuf[nbox].zero == NULL || 58 boxbuf[nbox].xfit == NULL || 59 boxbuf[nbox].yfit == NULL) { 60 fprintf(stderr, "\rerror: failed to alloc boxbuf\n"); 61 exit(-673); 62 } 63 64 for(i=0; i<ABS(boxbuf[nbox].nfit); i++) { 58 65 if(fgets(line, 1024, fp) == NULL) { 59 66 fprintf(stderr, "\rerror: short read of burn lines\n"); … … 85 92 for(k=0; k<MAXCELL; k++) { 86 93 if( (i=cell[k].npersist) > 0) { 87 cell[k].persist = (OBJBOX *)calloc(i, sizeof(OBJBOX)); 94 if( (cell[k].persist = (OBJBOX *)calloc(i, sizeof(OBJBOX))) == NULL) { 95 fprintf(stderr, "\rerror: failed to alloc cell persist buffer\n"); 96 exit(-674); 97 } 88 98 cell[k].npersist = 0; 89 99 } … … 149 159 k = boxid[kp]; 150 160 zk = 0.0; 151 if( box[k].nfit > 0) zk = box[k].zero[box[k].nfit/2];161 if(ABS(box[k].nfit) > 0) zk = box[k].zero[ABS(box[k].nfit)/2]; 152 162 for(jp=kp+1; jp<n; jp++) { 153 163 j = boxid[jp]; 154 164 zj = 0.0; 155 if( box[j].nfit > 0) zj = box[j].zero[box[j].nfit/2];165 if(ABS(box[j].nfit) > 0) zj = box[j].zero[ABS(box[j].nfit)/2]; 156 166 if(ABS(yctr[jp]-yctr[kp]) > DIFFERENT_STREAK) { 157 167 /* Trim back the feebler streak */ … … 242 252 for(k=0; k<cell[j].npersist; k++) { 243 253 254 /* Retire old burns */ 255 if(cell[j].time - cell[j].persist[k].time > EXPIRE_TRAIL_TIME) 256 continue; 257 244 258 if(PERSIST_RETAIN) { 245 259 /* Keep fits which have a dubious slope */ … … 265 279 cell[j].persist[k].slope, cell[j].persist[k].nfit, 266 280 cell[j].persist[k].sxfit, cell[j].persist[k].exfit); 267 for(i=0; i< cell[j].persist[k].nfit; i++) {281 for(i=0; i<ABS(cell[j].persist[k].nfit); i++) { 268 282 fprintf(fp, "%3d %3d %8.4f\n", cell[j].persist[k].xfit[i], 269 283 cell[j].persist[k].yfit[i], cell[j].persist[k].zero[i]); … … 301 315 cell[j].burn[k].slope, cell[j].burn[k].nfit, 302 316 cell[j].burn[k].sxfit, cell[j].burn[k].exfit); 303 for(i=0; i< cell[j].burn[k].nfit; i++) {317 for(i=0; i<ABS(cell[j].burn[k].nfit); i++) { 304 318 fprintf(fp, "%3d %3d %8.4f\n", cell[j].burn[k].xfit[i], 305 319 cell[j].burn[k].yfit[i], cell[j].burn[k].zero[i]);
Note:
See TracChangeset
for help on using the changeset viewer.
