## INDEX

### Strassen's matrix multiplication program in c

C code of two 2 by 2 matrix multiplication using Strassen algorithm:

#include<stdio.h>
int main(){
int a,b,c,i,j;
int m1,m2,m3,m4,m5,m6,m7;

printf("Enter the 4 elements of first matrix: ");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);

printf("Enter the 4 elements of second matrix: ");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf("%d",&b[i][j]);

printf("\nThe 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("\nThe 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 + a)*(b+b);
m2= (a+a)*b;
m3= a*(b-b);
m4= a*(b-b);
m5= (a+a)*b;
m6= (a-a)*(b+b);
m7= (a-a)*(b+b);

c=m1+m4-m5+m7;
c=m3+m5;
c=m2+m4;
c=m1-m2+m3+m6;

printf("\nAfter multiplication using \n");
for(i=0;i<2;i++){
printf("\n");
for(j=0;j<2;j++)
printf("%d\t",c[i][j]);
}

return 0;
}

Sample output:
Enter the 4 elements of first matrix: 1
2
3
4
Enter the 4 elements of second matrix: 5
6
7
8

The first matrix is

1       2
3       4
The second matrix is

5       6
7       8
After multiplication using

19      22
43      50

Alogrithm:
**

JAHID said...

actually what's the rule of strassen matrix?
I don't understand it's mathmatic prograssion.

Unknown said...

thanx for this program

Unknown said...

this program is implemented with 2x2 matrices. but how to implement mxn & pxq matrix multiplication???? please elp. Anonymous said...

write the c code for n x n matrix Anonymous said...

When Strassen suggested this algorithm, he never really gave a formal proof as to how he came up with it. All that is known is that the algorithm works and only for nxn matrices where n should be a power of 2.

Unknown said...

plz write program of multiply of two square matrices using divide and coqour algorithm