@@ -11,7 +11,7 @@ void fft(double complex *x, size_t n) {
1111 memset (y , 0 , sizeof (y ));
1212 fftw_plan p ;
1313
14- p = fftw_plan_dft_1d (n , (fftw_complex * )x , (fftw_complex * )y ,
14+ p = fftw_plan_dft_1d (( int ) n , (fftw_complex * )x , (fftw_complex * )y ,
1515 FFTW_FORWARD , FFTW_ESTIMATE );
1616
1717 fftw_execute (p );
@@ -27,7 +27,7 @@ void dft(double complex *X, const size_t N) {
2727 for (size_t i = 0 ; i < N ; ++ i ) {
2828 tmp [i ] = 0 ;
2929 for (size_t j = 0 ; j < N ; ++ j ) {
30- tmp [i ] += X [j ] * cexp (-2.0 * M_PI * I * j * i / N );
30+ tmp [i ] += X [j ] * cexp (-2.0 * M_PI * I * ( double ) j * ( double ) i / ( double ) N );
3131 }
3232 }
3333
@@ -49,7 +49,7 @@ void cooley_tukey(double complex *X, const size_t N) {
4949 cooley_tukey (X + N / 2 , N / 2 );
5050
5151 for (size_t i = 0 ; i < N / 2 ; ++ i ) {
52- X [i + N / 2 ] = X [i ] - cexp (-2.0 * I * M_PI * i / N ) * X [i + N / 2 ];
52+ X [i + N / 2 ] = X [i ] - cexp (-2.0 * I * M_PI * ( double ) i / ( double ) N ) * X [i + N / 2 ];
5353 X [i ] -= (X [i + N / 2 ]- X [i ]);
5454 }
5555 }
@@ -58,7 +58,7 @@ void cooley_tukey(double complex *X, const size_t N) {
5858void bit_reverse (double complex * X , size_t N ) {
5959 for (size_t i = 0 ; i < N ; ++ i ) {
6060 size_t n = i ;
61- int a = i ;
61+ size_t a = i ;
6262 int count = (int )log2 ((double )N ) - 1 ;
6363
6464 n >>= 1 ;
@@ -67,7 +67,7 @@ void bit_reverse(double complex *X, size_t N) {
6767 count -- ;
6868 n >>= 1 ;
6969 }
70- n = (a << count ) & (( 1 << (int )log2 ((double )N )) - 1 );
70+ n = (a << count ) & (size_t )(( 1 << (size_t )log2 ((double )N )) - 1 );
7171
7272 if (n > i ) {
7373 double complex tmp = X [i ];
@@ -81,8 +81,8 @@ void iterative_cooley_tukey(double complex *X, size_t N) {
8181 bit_reverse (X , N );
8282
8383 for (int i = 1 ; i <= log2 ((double )N ); ++ i ) {
84- size_t stride = pow (2 , i );
85- double complex w = cexp (-2.0 * I * M_PI / stride );
84+ size_t stride = ( size_t ) pow (2 , i );
85+ double complex w = cexp (-2.0 * I * M_PI / ( double ) stride );
8686 for (size_t j = 0 ; j < N ; j += stride ) {
8787 double complex v = 1.0 ;
8888 for (size_t k = 0 ; k < stride / 2 ; ++ k ) {
@@ -105,7 +105,7 @@ void approx(double complex *X, double complex *Y, size_t N) {
105105}
106106
107107int main () {
108- srand (time (NULL ));
108+ srand (( unsigned int ) time (NULL ));
109109 double complex x [64 ], y [64 ], z [64 ];
110110 for (size_t i = 0 ; i < 64 ; ++ i ) {
111111 x [i ] = rand () / (double ) RAND_MAX ;
0 commit comments