mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-07-14 11:04:18 -04:00
polishing SIMD changes
This commit is contained in:
@ -25,14 +25,14 @@ double two_tone_test( int nfft, int bin1,int bin2)
|
||||
#endif
|
||||
|
||||
cfg = kiss_fftr_alloc(nfft , 0, NULL, NULL);
|
||||
tbuf = memalign(sizeof(kiss_fft_scalar),nfft * sizeof(kiss_fft_scalar));
|
||||
kout = memalign(sizeof(kiss_fft_scalar),nfft * sizeof(kiss_fft_cpx));
|
||||
tbuf = KISS_FFT_MALLOC(nfft * sizeof(kiss_fft_scalar));
|
||||
kout = KISS_FFT_MALLOC(nfft * sizeof(kiss_fft_cpx));
|
||||
|
||||
/* generate a signal with two tones*/
|
||||
for (i = 0; i < nfft; i++) {
|
||||
#ifdef USE_SIMD
|
||||
#ifdef USE_SIMD
|
||||
tbuf[i] = _mm_set1_ps( (maxrange>>1)*cos(f1*i)
|
||||
+ (maxrange>>1)*cos(f2*i) );
|
||||
+ (maxrange>>1)*cos(f2*i) );
|
||||
#else
|
||||
tbuf[i] = (maxrange>>1)*cos(f1*i)
|
||||
+ (maxrange>>1)*cos(f2*i);
|
||||
@ -42,8 +42,13 @@ double two_tone_test( int nfft, int bin1,int bin2)
|
||||
kiss_fftr(cfg, tbuf, kout);
|
||||
|
||||
for (i=0;i < (nfft/2+1);++i) {
|
||||
#ifdef USE_SIMD
|
||||
double tmpr = (double)*(float*)&kout[i].r / (double)maxrange;
|
||||
double tmpi = (double)*(float*)&kout[i].i / (double)maxrange;
|
||||
#else
|
||||
double tmpr = (double)kout[i].r / (double)maxrange;
|
||||
double tmpi = (double)kout[i].i / (double)maxrange;
|
||||
#endif
|
||||
double mag2 = tmpr*tmpr + tmpi*tmpi;
|
||||
if (i!=0 && i!= nfft/2)
|
||||
mag2 *= 2; /* all bins except DC and Nyquist have symmetric counterparts implied*/
|
||||
|
Reference in New Issue
Block a user