----------------------------------------------------------------------------- name: bit_reverse() desc: bitreverse places float array x containing N/2 complex values into bit-reversed order -----------------------------------------------------------------------------
| 266 | // into bit-reversed order |
| 267 | //----------------------------------------------------------------------------- |
| 268 | void bit_reverse(float * x, long N) |
| 269 | { |
| 270 | float rtemp, itemp; |
| 271 | long i, j, m; |
| 272 | for (i = j = 0; i < N; i += 2, j += m) |
| 273 | { |
| 274 | if (j > i) |
| 275 | { |
| 276 | rtemp = x[j]; itemp = x[j + 1]; /* complex exchange */ |
| 277 | x[j] = x[i]; x[j + 1] = x[i + 1]; |
| 278 | x[i] = rtemp; x[i + 1] = itemp; |
| 279 | } |
| 280 | |
| 281 | for (m = N >> 1; m >= 2 && j >= m; m >>= 1) |
| 282 | j -= m; |
| 283 | } |
| 284 | } |