| 4 | #include<time.h> |
| 5 | #define min(a,b) ((a)<(b)?(a):(b)) |
| 6 | void matrixmulti_1(int N, int** x, int** y, int** z,int S) |
| 7 | {//S为分块后小矩阵的长度 |
| 8 | int kk,jj,i, j, k, r; |
| 9 | for (jj = 0; jj < N; jj = jj + S) { |
| 10 | for (kk = 0; kk < N; kk = kk + S) { |
| 11 | for (i = 0; i < N; i++) { |
| 12 | for (j = jj; j < min(jj + S , N); j++) { |
| 13 | r = 0; |
| 14 | for (k = kk; k < min(kk + S , N); k++) |
| 15 | r = r + y[i][k] * z[k][j]; |
| 16 | x[i][j] = x[i][j] + r; |
| 17 | } |
| 18 | } |
| 19 | } |
| 20 | } |
| 21 | } |
| 22 | int main() |
| 23 | { |
| 24 | int n, i, j; |