equal
deleted
inserted
replaced
41 return NULL; |
41 return NULL; |
42 } |
42 } |
43 nfft >>= 1; |
43 nfft >>= 1; |
44 |
44 |
45 kiss_fft_f64_alloc (nfft, inverse_fft, NULL, &subsize); |
45 kiss_fft_f64_alloc (nfft, inverse_fft, NULL, &subsize); |
46 memneeded = ALIGN_STRUCT (sizeof (struct kiss_fftr_f64_state)) |
46 memneeded = |
47 + ALIGN_STRUCT (subsize) |
47 sizeof (struct kiss_fftr_f64_state) + subsize + |
48 + sizeof (kiss_fft_f64_cpx) * (nfft * 2); |
48 sizeof (kiss_fft_f64_cpx) * (nfft * 2); |
49 |
49 |
50 if (lenmem == NULL) { |
50 if (lenmem == NULL) { |
51 st = (kiss_fftr_f64_cfg) KISS_FFT_F64_MALLOC (memneeded); |
51 st = (kiss_fftr_f64_cfg) KISS_FFT_F64_MALLOC (memneeded); |
52 } else { |
52 } else { |
53 if (*lenmem >= memneeded) |
53 if (*lenmem >= memneeded) |
55 *lenmem = memneeded; |
55 *lenmem = memneeded; |
56 } |
56 } |
57 if (!st) |
57 if (!st) |
58 return NULL; |
58 return NULL; |
59 |
59 |
60 st->substate = (kiss_fft_f64_cfg) (((char *) st) + ALIGN_STRUCT (sizeof (struct kiss_fftr_f64_state))); /*just beyond kiss_fftr_f64_state struct */ |
60 st->substate = (kiss_fft_f64_cfg) (st + 1); /*just beyond kiss_fftr_f64_state struct */ |
61 st->tmpbuf = |
61 st->tmpbuf = (kiss_fft_f64_cpx *) (((char *) st->substate) + subsize); |
62 (kiss_fft_f64_cpx *) (((char *) st->substate) + ALIGN_STRUCT (subsize)); |
|
63 st->super_twiddles = st->tmpbuf + nfft; |
62 st->super_twiddles = st->tmpbuf + nfft; |
64 kiss_fft_f64_alloc (nfft, inverse_fft, st->substate, &subsize); |
63 kiss_fft_f64_alloc (nfft, inverse_fft, st->substate, &subsize); |
65 |
64 |
66 for (i = 0; i < nfft; ++i) { |
65 for (i = 0; i < nfft; ++i) { |
67 double phase = -3.14159265358979323846264338327 * ((double) i / nfft + .5); |
66 double phase = -3.14159265358979323846264338327 * ((double) i / nfft + .5); |