diff options
Diffstat (limited to 'math/transforms/fftPerm.cpp')
| -rw-r--r-- | math/transforms/fftPerm.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/math/transforms/fftPerm.cpp b/math/transforms/fftPerm.cpp new file mode 100644 index 0000000..2b6fb10 --- /dev/null +++ b/math/transforms/fftPerm.cpp @@ -0,0 +1,8 @@ +int perm[MAXN]; //perm[i] = j in Zeile 10 +void genPerm(int n){ + ull mask = ~0ull << (__lg(n) - 1); + for (int i = 0, j = 0; i < n; i++) { + perm[i] = j; //if (i < j) swap(a[i], a[j]); + ull y = mask >> __builtin_ctz(~i); + j ^= y & (n - 1); +}} |
