This is shepenv.c in view mode; [Download] [Up]
/* cc shepenv -lcarl -lm -o shepenv */ #include <stdio.h> #include <carl/carl.h> #include <math.h> #define PI2 (8.*atan(1.)) #define logb(x,b) (log(x)/log(b)) main(argc, argv) int argc; char *argv[]; { double factor, cycles, base ; int len, i ; float value ; if(argc != 4 ) { fprintf(stderr, "shepenv -L cycles base\n") ; exit( -1 ) ; } len = expr( argv[1]+2 ) ; cycles = expr( argv[2] ) ; base = expr( argv[3] ) ; if(isatty(1)){ for( i = 0; i < len; i++ ) printf("%d %f\n", i, -.5*cos( (PI2/cycles)* log( 1 + ( (double) i/(len - 1))*( pow( base, cycles ) - 1 ) )/ log( base ) ) + .5 ) ; } else { factor = 1./(pow(base, cycles) - 1) ; for( i = 0; i < len; i++ ) { value = -.5*cos( (PI2/cycles)* log( 1 + ( (double) i/(len - 1))*( pow( base, cycles ) - 1 ) )/ log( base ) ) + .5 ; putfloat( &value ) ; } } flushfloat(); exit(0); /* Return status of 0 if all went OK */ }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.