This is tft.c in view mode; [Download] [Up]
/*
* just a little test for the fft routines (cf Elements, pp 87-88)
*/
#include <stdio.h>
#include <math.h>
#define L 16
float TWOPI ;
float PI ;
main() {
float x[L], y[L], z[L] ;
int n ;
PI = 4.*atan(1.) ;
TWOPI = 8.*atan(1.) ;
for ( n = 0 ; n < L ; n++ )
x[n] = y[n] = 0. + .5*cos ( n*TWOPI/L +1. ) + .5*cos( 3*n*TWOPI/L ) ;
rfft( y, L/2, 1 ) ;
for ( n = 0 ; n < L ; n++ )
z[n] = y[n] ;
rfft( z, L/2, 0 ) ;
printf( "%4s%9s%10s%10s%10s\n",
"n ", "x(n)", "y(2n)", "y(2n+1)", "z(n)" ) ;
for ( n = 0 ; n < L ; n++ ) {
if ( n < L/2 )
printf( "[%2d] %9f %9f %9f %9f\n",
n, x[n], y[n<<1], y[(n<<1)+1], z[n] ) ;
else
printf( "[%2d] %9f %9f\n",
n, x[n], z[n] ) ;
}
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.