Question: #include #include #include #define MIN _ DIM _ POWER 3 #define MAX _ DIM _ POWER 1 0 #define FALSE 0 #define TRUE 1 void
#include
#include
#include
#define MINDIMPOWER
#define MAXDIMPOWER
#define FALSE
#define TRUE
void initconst int dim, int const m
for int i ; i dim dim; i
mi rand;
void printconst int dim, const int const m
for int i ; i dim; i
for int j ; j dim; j
printfdt mi dim j;
printf
;
printf
;
void multiplyconst int dim, const int const a int const b int const c
for int i ; i dim; i
for int j ; j dim; j
int sum ;
for int k ; k dim; k
sum ai dim k bk dim j;
ci dim j sum;
void transposeconst int dim, int const m
for int i ; i dim; i
for int j ; j i; j
int tmp mi dim j;
mi dim j mj dim i;
mj dim i tmp;
void multiplytransposeconst int dim, const int const a const int const bt int const c
for int i ; i dim; i
for int j ; j dim; j
int sum ;
for int k ; k dim; k
sum ai dim k btj dim k;
ci dim j sum;
void transposeandmultiplyconst int dim, const int const a int const b int const c
transposedim b;
multiplytransposedim a b c;
int verifyconst int dim, const int const c const int const c
for int i ; i dim dim; i
if ci ci
return FALSE;
return TRUE;
struct timeval runandtime
void multfuncconst int, const int const, int const, int const
const int dim,
const int const a
int const b
int const c
struct timeval start, end;
gettimeofday&start, NULL;
multfuncdim a b c;
gettimeofday&end, NULL;
if endtvusec start.tvusec
end.tvsec;
end.tvusec ;
end.tvsec start.tvsec;
end.tvusec start.tvusec;
return end;
void runtestconst int dim
int a callocdim dim, sizeofint;
int b callocdim dim, sizeofint;
int c callocdim dim, sizeofint;
int c callocdim dim, sizeofint;
initdim a;
initdim b;
printfMatrix A:
;
printdim a;
printfMatrix B:
;
printdim b;
printfRunning standard multiplication...
;
struct timeval standardtime runandtime&multiply, dim, a b c;
printfStandard multiplication: ld seconds, d microseconds
standardtime.tvsec standardtime.tvusec;
printfRunning multiplication with transpose...
;
struct timeval transposetime runandtime&transposeandmultiply, dim, a b c;
printfMultiplication with transpose: ld seconds, d microseconds
transposetime.tvsec transposetime.tvusec;
printfResults agree. s
verifydim c c "Standard multiplication" : "Multiplication with transpose";
freea;
freeb;
freec;
freec;
int main
for int power MINDIMPOWER; power MAXDIMPOWER; power
int dim power;
printfRunning test for dimension: d
dim;
runtestdim;
return EXITSUCCESS;
edit this c code that represents matrix multiplication to have this sample run pac
Results agree.
Standard multiplication: seconds, microseconds
Multiplication with transpose: seconds, microseconds
Results agree.
Standard multiplication: seconds, microseconds
Multiplication with transpose: seconds, microseconds
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
