This is gen0.c in view mode; [Download] [Up]
/* gen0 - scale signal to be bounded by [-scale,+scale] */
#include<stdio.h>
#include<carl/carl.h>
main(argc, argv)
char **argv;
{
float input, output, scale = 1.0, *func, max = 0;
int otty = isatty(1);
char ch;
long len = (unsigned) -1 >> 1, cnt = 0;
while ((ch = crack(argc, argv, "L|", 0)) != NULL) {
switch (ch) {
case 'L':
len = expr(arg_option);
if (exprerr) {
fprintf(stderr, "expression error: %s\n",
arg_option);
exit(1);
}
break;
default:
fprintf(stderr,
"usage: gen0 -LN max < floatsams > floatsams\n");
exit(1);
}
}
if (arg_index < argc) {
scale = expr(argv[arg_index]);
if (exprerr) {
fprintf(stderr, "gain expression error: %s\n",
argv[arg_index]);
exit(1);
}
}
while ((getfloat(&input) > 0) && cnt < len) {
if (input < 0)
input = -input;
if (input > max)
max = input;
if (floatsav(&func, input) < 0)
exit(1);
cnt++;
}
max = scale / max;
for (len = cnt, cnt = 0; cnt < len; cnt++) {
output = func[cnt] * max;
if (otty)
printf("%6.3f\n", output);
else
putfloat(&output);
}
if (!otty)
flushfloat();
exit(0);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.