blob: 916c4cebc60312a1920097e4e1b5a963c626ea82 [file] [log] [blame]
typedef float fftw_real;
void complex_transpose(fftw_real *rA, fftw_real *iA, int n, int is, int js)
{
int i, j;
for (i = 1; i < n; ++i) {
for (j = 0; j < i; ++j) {
fftw_real ar, ai, br, bi;
ar = rA[i * is + j * js];
ai = iA[i * is + j * js];
br = rA[j * is + i * js];
bi = iA[j * is + i * js];
rA[j * is + i * js] = ar;
iA[j * is + i * js] = ai;
rA[i * is + j * js] = br;
iA[i * is + j * js] = bi;
}
}
}
extern int printf(const char *str, ...);
fftw_real A[2048];
int main(int argc, char **argv)
{
int i;
fftw_real sum = 0.0;
for (i = 0; i < 2048; ++i) {
A[i] = i;
sum = sum + A[i];
}
printf("Checksum before = %lf\n", sum);
for (i = 0; i < 10; ++i) {
complex_transpose(A, A+1, 32, 2, 64);
}
sum = 0.0;
for (i = 0; i < 2048; ++i)
sum = sum + A[i];
printf("Checksum after = %lf\n", sum);
return 0;
}