59 |
|
func = MULT; |
60 |
|
break; |
61 |
|
case 's': |
62 |
– |
func = ADD; |
62 |
|
power = atof(argv[a]+2); |
63 |
|
break; |
64 |
|
case 'u': |
136 |
|
} |
137 |
|
else |
138 |
|
break; |
139 |
+ |
if ((power != 0.0) & (func != ADD)) { |
140 |
+ |
fprintf(stderr, "%s: -sE option requires summation\n", argv[0]); |
141 |
+ |
exit(1); |
142 |
+ |
} |
143 |
|
if (mean) { |
144 |
|
if (func == MAX) { |
145 |
|
fprintf(stderr, "%s: average maximum?!\n", argv[0]); |
231 |
|
if (n) fputc(tabc, fp); |
232 |
|
} |
233 |
|
fputc('\n', fp); |
234 |
+ |
if (!subtotal) |
235 |
+ |
fflush(fp); /* flush unless -r */ |
236 |
|
} |
237 |
|
|
238 |
|
|
285 |
|
case ADD: |
286 |
|
if (inpval[n] == 0.0) |
287 |
|
break; |
288 |
< |
if (power != 0.0) |
284 |
< |
tally[n] += pow(fabs(inpval[n]),power); |
285 |
< |
else |
288 |
> |
if (power == 0.0) |
289 |
|
tally[n] += inpval[n]; |
290 |
+ |
else if (power == 1.0) |
291 |
+ |
tally[n] += fabs(inpval[n]); |
292 |
+ |
else if (power == -1.0) |
293 |
+ |
tally[n] += 1.0/fabs(inpval[n]); |
294 |
+ |
else |
295 |
+ |
tally[n] += pow(fabs(inpval[n]), power); |
296 |
|
break; |
297 |
|
case MULT: |
298 |
|
if (inpval[n] == 0.0) |
340 |
|
break; |
341 |
|
} |
342 |
|
/* close input */ |
343 |
< |
return(fclose(fp)); |
343 |
> |
return(fclose(fp) == EOF ? 1 : 0); |
344 |
|
} |