diff --git a/tools/fftutil.c b/tools/fftutil.c index bf050e0..60fd497 100644 --- a/tools/fftutil.c +++ b/tools/fftutil.c @@ -45,22 +45,19 @@ void fft_filend(FILE * fin,FILE * fout,int *dims,int ndims,int isinverse) { void *st; kiss_fft_cpx *buf; - kiss_fft_cpx *bufout; int dimprod=1,i; for (i=0;i 0) { - kiss_fftnd (st, buf, bufout); - fwrite (bufout, sizeof (kiss_fft_cpx), dimprod, fout); + kiss_fftnd (st, buf, buf); + fwrite (buf, sizeof (kiss_fft_cpx), dimprod, fout); } free (st); free (buf); - free (bufout); } void fft_file_real(FILE * fin,FILE * fout,int nfft,int isinverse) @@ -99,7 +96,7 @@ int get_dims(char * arg,int * dims) if (p0) *p0++ = '\0'; dims[ndims++] = atoi(arg); - fprintf(stderr,"dims[%d] = %d\n",ndims-1,dims[ndims-1]); + /* fprintf(stderr,"dims[%d] = %d\n",ndims-1,dims[ndims-1]); */ arg = p0; }while (p0); return ndims; diff --git a/tools/kiss_fftnd.c b/tools/kiss_fftnd.c index 798cd3e..e95290a 100644 --- a/tools/kiss_fftnd.c +++ b/tools/kiss_fftnd.c @@ -146,15 +146,19 @@ void kiss_fftnd(void * cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout) kiss_fft_cpx * bufout; /*arrange it so the last bufout == fout*/ - if ( st->ndims & 1 ) + if ( st->ndims & 1 ) { bufout = fout; - else + if (fin==fout) { + memcpy( st->tmpbuf, fin, sizeof(kiss_fft_cpx) * st->dimprod ); + bufin = st->tmpbuf; + } + }else bufout = st->tmpbuf; for ( k=0; k < st->ndims; ++k) { int curdim = st->dims[k]; int stride = st->dimprod / curdim; - + for ( i=0 ; istates[k], bufin+i , bufout+i*curdim, stride );