home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / draco / draco-1.ark / MATTIME.DRC < prev    next >
Text File  |  1986-11-12  |  768b  |  35 lines

  1. int SIZE = 75;
  2. type TYPE = word;
  3.  
  4. proc matrixMultiply([*, *] TYPE x; [*, *] TYPE y; [*, *] TYPE z)void:
  5.     TYPE i, j, k, sum;
  6.  
  7.     for i from 0 upto dim(z, 1) - 1 do
  8.     for j from 0 upto dim(z, 2) - 1 do
  9.         sum := 0;
  10.         for k from 0 upto dim(x, 2) - 1 do
  11.         sum := sum + x[i, k] * y[k, j];
  12.         od;
  13.         z[i, j] := sum;
  14.     od;
  15.     od;
  16. corp;
  17.  
  18. proc main()void:
  19.     [SIZE, SIZE] TYPE a, b;
  20.     TYPE i, j;
  21.  
  22.     for i from 0 upto SIZE - 1 do
  23.     for j from 0 upto SIZE - 1 do
  24.         a[i, j] := i + j;
  25.     od;
  26.     od;
  27.     writeln("Starting square:");
  28.     matrixMultiply(a, a, b);
  29.     writeln("Squaring done. Diagonal of squared matrix is:");
  30.     for i from 0 upto SIZE - 1 do
  31.     write(b[i, i], ' ');
  32.     od;
  33.     writeln();
  34. corp;
  35.