0% found this document useful (0 votes)
2 views2 pages

Strassen's Matrix Multiplication Program

This document contains a C++ program that implements Strassen's algorithm for matrix multiplication of 2x2 matrices. It prompts the user to input two matrices, performs the multiplication using Strassen's method, and then displays the resulting matrix. The program utilizes seven intermediate calculations to optimize the multiplication process.

Uploaded by

pafiyik170
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views2 pages

Strassen's Matrix Multiplication Program

This document contains a C++ program that implements Strassen's algorithm for matrix multiplication of 2x2 matrices. It prompts the user to input two matrices, performs the multiplication using Strassen's method, and then displays the resulting matrix. The program utilizes seven intermediate calculations to optimize the multiplication process.

Uploaded by

pafiyik170
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Program for strassen's matrix multiplication

#include<iostream>

using namespace std;

int main()

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

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

cout<<"Enter the 4 elements of first matrix: ";

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

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

cin>>a[i][j];

cout<<"Enter the 4 elements of second matrix: ";

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

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

cin>>(b[i][j]);

cout<<"\nThe first matrix is\n";

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

cout<<"\n";

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

cout<<”\t"<<a[i][j];

cout<<"\nThe second matrix is\n";

for(i=0;i<2;i++){
cout<<"\n";

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

cout<<"\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;

cout<<"\nAfter multiplication \n";

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

cout<<"\n";

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

cout<<"\t"<<c[i][j];

You might also like