/* Evgenii B. Rudnyi, http://Evgenii.Rudnyi.Ru */ #include #include #include #define dim1 1000 #define dim2 1000 #define dim3 1000 int main() { double A[dim1][dim2], B[dim2][dim3], C[dim1][dim3]; int i, j, k; double start, finish; double maxr; srand(86456); maxr = (double)RAND_MAX; for (i = 0; i < dim1; i++) for (j = 0; j < dim2; j++) A[i][j] = rand()/maxr; for (i = 0; i < dim2; i++) for (j = 0; j < dim3; j++) B[i][j] = rand()/maxr; start = clock(); for (i = 0; i < dim1; i++) { for (j = 0; j < dim3; j++) C[i][j] = 0.; for (k = 0; k < dim2; k++) for (j = 0; j < dim3; j++) C[i][j] += A[i][k]*B[k][j]; } finish = clock(); printf("time for C(%d,%d) = A(%d,%d) B(%d,%d) is %f s\n", dim1, dim3, dim1, dim2, dim2, dim3, (finish - start)/CLK_TCK); return 0; }