main
| Line | |
|---|
| 1 | #include <stdio.h>
|
|---|
| 2 | #include <stdlib.h>
|
|---|
| 3 |
|
|---|
| 4 | #define NRA 62 /* number of rows in matrix A */
|
|---|
| 5 | #define NCA 15 /* number of columns in matrix A */
|
|---|
| 6 | #define NCB 7 /* number of columns in matrix B */
|
|---|
| 7 |
|
|---|
| 8 | int main (int argc, char *argv[])
|
|---|
| 9 | {
|
|---|
| 10 | int i, j, k, chunk;
|
|---|
| 11 | double a[NRA][NCA], /* matrix A to be multiplied */
|
|---|
| 12 | b[NCA][NCB], /* matrix B to be multiplied */
|
|---|
| 13 | c[NRA][NCB]; /* result matrix C */
|
|---|
| 14 |
|
|---|
| 15 | chunk = 10; /* set loop iteration chunk size */
|
|---|
| 16 |
|
|---|
| 17 | {
|
|---|
| 18 | printf("Initializing matrices...\n");
|
|---|
| 19 |
|
|---|
| 20 | for (i=0; i<NRA; i++)
|
|---|
| 21 | for (j=0; j<NCA; j++)
|
|---|
| 22 | a[i][j]= i+j;
|
|---|
| 23 |
|
|---|
| 24 | for (i=0; i<NCA; i++)
|
|---|
| 25 | for (j=0; j<NCB; j++)
|
|---|
| 26 | b[i][j]= i*j;
|
|---|
| 27 |
|
|---|
| 28 | for (i=0; i<NRA; i++)
|
|---|
| 29 | for (j=0; j<NCB; j++)
|
|---|
| 30 | c[i][j]= 0;
|
|---|
| 31 |
|
|---|
| 32 | for (i=0; i<NRA; i++)
|
|---|
| 33 | {
|
|---|
| 34 | for(j=0; j<NCB; j++)
|
|---|
| 35 | for (k=0; k<NCA; k++)
|
|---|
| 36 | c[i][j] += a[i][k] * b[k][j];
|
|---|
| 37 | }
|
|---|
| 38 | }
|
|---|
| 39 |
|
|---|
| 40 | printf("******************************************************\n");
|
|---|
| 41 | printf("Result Matrix:\n");
|
|---|
| 42 | for (i=0; i<NRA; i++)
|
|---|
| 43 | {
|
|---|
| 44 | for (j=0; j<NCB; j++)
|
|---|
| 45 | printf("%6.2f ", c[i][j]);
|
|---|
| 46 | printf("\n");
|
|---|
| 47 | }
|
|---|
| 48 | printf("******************************************************\n");
|
|---|
| 49 | printf ("Done.\n");
|
|---|
| 50 |
|
|---|
| 51 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.