| 22 |
|
|
| 23 |
|
/* bits in argument flag (better be right!) */ |
| 24 |
|
#define AFLAGSIZ (8*sizeof(unsigned long)) |
| 25 |
< |
#define ALISTSIZ 8 /* maximum saved argument list */ |
| 25 |
> |
#define ALISTSIZ 10 /* maximum saved argument list */ |
| 26 |
|
|
| 27 |
|
typedef struct activation { |
| 28 |
|
char *name; /* function name */ |
| 203 |
|
EPNODE *ep = NULL; |
| 204 |
|
double aval; |
| 205 |
|
|
| 206 |
– |
if (!n) /* asking for # arguments? */ |
| 207 |
– |
return((double)nargum()); |
| 208 |
– |
|
| 206 |
|
if (!actp | (--n < 0)) { |
| 207 |
|
eputs("Bad call to argument!\n"); |
| 208 |
|
quit(1); |
| 355 |
|
errno = ERANGE; |
| 356 |
|
} |
| 357 |
|
#endif |
| 358 |
< |
if (errno == EDOM || errno == ERANGE) { |
| 358 |
> |
if ((errno == EDOM) | (errno == ERANGE)) { |
| 359 |
|
wputs(fname); |
| 360 |
|
if (errno == EDOM) |
| 361 |
|
wputs(": domain error\n"); |
| 393 |
|
double a1 = argument(1); |
| 394 |
|
int n = (int)(a1 + .5); |
| 395 |
|
|
| 396 |
< |
if (a1 < -.5 || n >= narg) { |
| 396 |
> |
if ((a1 < -.5) | (n >= narg)) { |
| 397 |
|
errno = EDOM; |
| 398 |
|
return(0.0); |
| 399 |
|
} |
| 407 |
|
l_max(char *nm) /* general maximum function */ |
| 408 |
|
{ |
| 409 |
|
int n = nargum(); |
| 413 |
– |
int i = 1; |
| 410 |
|
double vmax = argument(1); |
| 411 |
|
|
| 412 |
< |
while (i++ < n) { |
| 413 |
< |
double v = argument(i); |
| 412 |
> |
while (n > 1) { |
| 413 |
> |
double v = argument(n--); |
| 414 |
|
if (vmax < v) |
| 415 |
|
vmax = v; |
| 416 |
|
} |
| 422 |
|
l_min(char *nm) /* general minimum function */ |
| 423 |
|
{ |
| 424 |
|
int n = nargum(); |
| 429 |
– |
int i = 1; |
| 425 |
|
double vmin = argument(1); |
| 426 |
|
|
| 427 |
< |
while (i++ < n) { |
| 428 |
< |
double v = argument(i); |
| 427 |
> |
while (n > 1) { |
| 428 |
> |
double v = argument(n--); |
| 429 |
|
if (vmin > v) |
| 430 |
|
vmin = v; |
| 431 |
|
} |