- 论坛徽章:
- 0
|
#include <stdio.h>
#define ARRAY 1024*4
#define B 32*4
double in[ARRAY][ARRAY], out[ARRAY][ARRAY];
int jj, kk;
void init() {
int i,j;
for (i = 0; i < ARRAY; i++)
for (j = 0; j < ARRAY; j++)
in[i][j] = i*ARRAY + j;
}
void transpose() {
int i,j;
for (jj = 0, jj < ARRAY, jj += B)
for (kk = 0, kk < ARRAY, kk += B)
for (i = jj; i < min( jj+B-1, ARRAY); i++) {
for (j = kk; j < min( kk+B-1, ARRAY); j++)
out[i][j] = in[j][i];
}
}
int main() {
int i,j;
init();
transpose();
/*
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++)
printf("%f\t", out[i][j]);
printf("\n");
}
*/
return 0;
} |
|