summaryrefslogtreecommitdiff
path: root/math/transforms/fftPerm.cpp
blob: 2b6fb10279b8c56fa08a76bf907971d579f98bbd (plain)
1
2
3
4
5
6
7
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);
}}