Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #include <time.h>
- #include <locale.h>
- #define N 500
- int main() {
- setlocale( LC_ALL, "" );
- double A[N][N], B[N][N], C[N][N], TEST[N][N], tmp;
- int I, IE, J, JE, K, KE, WK, WJ, i, j, k;
- double tact = (double)CLOCKS_PER_SEC, time1 = 0, time2 = 0;
- WK = 50;
- for(i = 0; i < N; i++)
- for(j = 0; j < N; j++) {
- A[i][j] = rand() % 10;
- B[i][j] = rand() % 10;
- }
- /*for(i = 0; i < N; i++) {
- for(j = 0; j < N; j++)
- printf("%5.0f ", A[i][j]);
- printf("\n");
- }
- printf("*\n");
- for(i = 0; i < N; i++) {
- for(j = 0; j < N; j++)
- printf("%5.0f ", B[i][j]);
- printf("\n");
- } */
- for(WJ = 1; WJ < N; WJ++) {
- time1 = ((double)(clock()))/tact;
- //printf("%f\n", time1);
- for(K = 0; K < N; K = KE) {
- KE = K + WK;
- if (KE > N)
- KE = N;
- for(J = 0; J < N; J = JE) {
- JE = J + WJ;
- if (JE > N)
- JE = N;
- for(i = 0; i < N; i++) {
- for(j = J; j < JE; j++) {
- tmp = 0;
- for(k = K; k < KE; k++)
- tmp += A[i][k]*B[k][j];
- C[i][j] = tmp;
- //printf("%.3f\n", tmp);
- }
- }
- }
- }
- time2 = ((double)(clock()))/tact;
- //printf("%f\n", time2);
- printf("%d %f\n", WJ, time2-time1);
- }
- /*printf("= C\n");
- for(i = 0; i < N; i++) {
- for(j = 0; j < N; j++)
- printf("%5.0f ", C[i][j]);
- printf("\n");
- } */
- /*//----------------TEST--------------------
- for(i = 0; i < N; i++) {
- for(j = 0; j < N; j++) {
- tmp = 0;
- for(k = 0; k < N; k++)
- tmp += A[i][k]*B[k][j];
- TEST[i][j] = tmp;
- }
- }
- //printf("= (TEST)\n");
- for(i = 0; i < N; i++) {
- for(j = 0; j < N; j++)
- printf("%5.0f ", TEST[i][j]);
- //if (C[i][j] != TEST[i][j])
- //printf("ERROR - [%d][%d]\n", i, j);
- printf("\n");
- }
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement