Files
mysysy/testdata/performance/h-10-01.sy

85 lines
1.1 KiB
Plaintext

const int N = 1024;
void trsm(int n, float A[][N], float B[][N]) {
int i, j, k;
k = 0;
while (k < n) {
i = 0;
while (i < n) {
B[i][k] = B[i][k] / A[i][i];
j = i + 1;
while (j < n) {
B[j][k] = B[j][k] - A[j][i] * B[i][k];
j = j + 1;
}
i = i + 1;
}
k = k + 1;
}
}
float A[N][N];
float B[N][N];
float C[N][N];
int main() {
int n = getint();
int i, j, k;
i = 0;
j = 0;
while (i < n) {
j = 0;
while (j < n) {
A[i][j] = getfloat();
j = j + 1;
}
i = i + 1;
}
i = 0;
j = 0;
while (i < n) {
j = 0;
while (j < n) {
C[i][j] = getfloat();
j = j + 1;
}
i = i + 1;
}
starttime();
k = 0;
while (k < 5) {
i = 0;
while (i < n) {
j = 0;
while (j < n) {
B[i][j] = C[i][j];
j = j + 1;
}
i = i + 1;
}
trsm(n, A, B);
k = k + 1;
}
stoptime();
float ans = 0;
i = 0;
while (i < n) {
j = 0;
while (j < n) {
ans = ans + B[i][j];
j = j + 1;
}
i = i + 1;
}
putfloat(ans);
putch(10);
return 0;
}