#include <stdio.h>
#include <stdlib.h>
#define SIZE 1000
void transpose(float **a, const int N) {
int tmp;
for (int i = 0; i < N; i++) {
for (int j = 0; j < i; j++) {
tmp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = tmp;
}
}
}
int main(void) {
float** src = new float*[SIZE];
for (int i = 0; i < SIZE; i++) {
src[i] = new float[SIZE];
}
for (int i = 0; i < SIZE; i ++) {
for (int j = 0; j < SIZE; j++) {
src[i][j] = i + j;
}
}
printf("Start\n");
for (int i = 0; i < 510; i++) {
transpose(src, SIZE);
}
printf("Finish\n");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgU0laRSAxMDAwCgp2b2lkIHRyYW5zcG9zZShmbG9hdCAqKmEsIGNvbnN0IGludCBOKSB7CglpbnQgdG1wOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgIAlmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykgewoJICAgICAgICB0bXAgPSBhW2ldW2pdOwoJICAgICAgICBhW2ldW2pdID0gYVtqXVtpXTsKCSAgICAgICAgYVtqXVtpXSA9IHRtcDsKICAgIAl9CiAgICB9Cn0KCmludCBtYWluKHZvaWQpIHsKCWZsb2F0Kiogc3JjID0gbmV3IGZsb2F0KltTSVpFXTsKCWZvciAoaW50IGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CgkJc3JjW2ldID0gbmV3IGZsb2F0W1NJWkVdOwoJfQoJZm9yIChpbnQgaSA9IDA7IGkgPCBTSVpFOyBpICsrKSB7CgkJZm9yIChpbnQgaiA9IDA7IGogPCBTSVpFOyBqKyspIHsKCQkJc3JjW2ldW2pdID0gaSArIGo7CgkJfQoJfQoJCglwcmludGYoIlN0YXJ0XG4iKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgNTEwOyBpKyspIHsKCQl0cmFuc3Bvc2Uoc3JjLCBTSVpFKTsKCX0KCXByaW50ZigiRmluaXNoXG4iKTsKCQoJcmV0dXJuIDA7Cn0K