DAA - Strassen's Matrix Program with Output(BCA- IV sem GFGCW JKD/KSWU)

 


SOURCE CODE : 

#include<stdio.h>

#include<conio.h>

#include<time.h>

int main()

{

clock_t start,end;

double ctu;

int a[2][2],b[2][2],c[2][2],i,j;

int m1,m2,m3,m4,m5,m6,m7;

clrscr();

start =clock();

printf("\n Enter 4 elements of first matrix: ");

for(i=0;i<2;i++)

for(j=0;j<2;j++)

scanf("%d",&a[i][j]);

printf("\n Enter  4 elements of second matrix: ");

for(i=0;i<2;i++)

for(j=0;j<2;j++)

scanf("%d",&b[i][j]);

printf("\n The first matrix is \n");

for(i=0;i<2;i++)

{

       printf("\n");

       for(j=0;j<2;j++)

       printf("%d\t",a[i][j]);

}

printf("\n The second matrix is: \n ");

for(i=0;i<2;i++)

{

       printf("\n");

       for(j=0;j<2;j++)

       printf("%d\t",b[i][j]);

}

  m1=(a[0][0]+a[1][1])*(b[0][0]+b[1][1]);

  m2=(a[1][0]+a[1][1])*b[0][0];

  m3=a[0][0]*(b[0][1]-b[1][1]);

  m4=a[1][1]*(b[1][0]-b[0][0]);

  m5=(a[0][0]+a[0][1])*b[1][1];

  m6=(a[1][0]-a[0][0])*(b[0][0]+b[0][1]);

  m7=(a[0][1]-a[1][1])*(b[1][0]+b[1][1]);

  c[0][0]=m1+m4-m5+m7;

  c[0][1]=m3+m5;

  c[1][0]=m2+m4;

  c[1][1]=m1-m2+m3+m6;

  printf("\n After performing multiplication ");

  for(i=0;i<2;i++)

  {

     printf("\n ");

     for(j=0;j<2;j++)

     printf("%d\t",c[i][j]);

  }

  end=clock();

  ctu=((double)(end-start))/CLOCKS_PER_SEC;

  printf("\n Time used to execute %f sec",ctu);

  getch();

  return 0;

}


OUTPUT : 





No comments:

Post a Comment