source: CIVL/mods/dev.civl.abc/examples/c/matprod.c

main
Last change on this file was aad342c, checked in by Stephen Siegel <siegel@…>, 3 years ago

Performing huge refactor to incorporate ABC, GMC, and SARL into CIVL repo and use Java modules.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5664 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.2 KB
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
8int main (int argc, char *argv[])
9{
10int i, j, k, chunk;
11double 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
15chunk = 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
40printf("******************************************************\n");
41printf("Result Matrix:\n");
42for (i=0; i<NRA; i++)
43 {
44 for (j=0; j<NCB; j++)
45 printf("%6.2f ", c[i][j]);
46 printf("\n");
47 }
48printf("******************************************************\n");
49printf ("Done.\n");
50
51}
Note: See TracBrowser for help on using the repository browser.