#include <stdio.h>
#include <time.h>
#define N 2048
main(){
int **a, **b, **c;
register int s, e, i, j, k, sum, sum_col1 = 0, sum_col2 = 0;
a = (int **)calloc(N, sizeof(int));
b = (int **)calloc(N, sizeof(int));
c = (int **)calloc(N, sizeof(int));
for ( i = 0; i < N; i++ )
{
a[i] = (int *)calloc(N, sizeof(int));
b[i] = (int *)calloc(N, sizeof(int));
c[i] = (int *)calloc(N, sizeof(int));
}
printf("Program Starting....\n");
for (i = 0; i < N; i++){
for (j = 0; j < N; j++){
a[i][j] = 1;
b[i][j] = 2;
c[i][j] = 0;
}
}
s = clock();
sum = 0;
for ( j = 0; j < N; j++ )
{
for ( k = j; k < N; k++ )
{
if ( j != k)
{
sum = b[j][k];
b[j][k] = b[k][i];
b[k][i] = sum;
}
}
}
for (i = 0; i < N/2; i++)
{
for (j = 0; j < N; j++)
{
sum_col1 = 0;
sum_col2 = 0;
for (k = 0; k < N/2; k++)
{
sum_col1 += (a[i*2][k*2]*b[j][k*2]) + (a[i*2][k*2+1]*b[j][k*2+1]);
sum_col2 += (a[i*2+1][k*2]*b[j][k*2]) + (a[i*2+1][k*2+1]*b[j][k*2+1]);
}
c[i*2][j] = sum_col1;
c[i*2+1][j] = sum_col2;
}
}
e = clock();
printf("time : %d clocks \n", (e-s));
printf("time : %d seconds \n", (e-s)/CLOCKS_PER_SEC);
printf("c[1][1] : %d\n", c[1][1]);
printf("Program End....\n");
for(i = 0; i < N; i++)
{
free(a[i]);
free(b[i]);
free(c[i]);
}
free(a);
free(b);
free(c);


