/* http://www.edcc.edu/faculty/paul.bladek/Cmpsc142/matmult.htm */ int program(int argc, string[] argv) { var a = new int[][]{new int[]{1, 3, 4}, new int[]{2, 0, 1}}; var b = new int[][]{new int[]{1, 2, 3, 1}, new int[]{2, 2, 2, 2}, new int[]{3, 2, 1, 4}}; var c = new int[][]{new int[]{0, 0, 0, 0}, new int[]{0, 0, 0, 0}}; matrix_Mult(a, b, c); prnNx4(c, 2); matrix_MultAlt(a, b, c); /* alternate form that calls dot3 */ prnNx4(c, 2); return 0; } /* http://www.edcc.edu/faculty/paul.bladek/Cmpsc142/matmult.htm */ void matrix_Mult(int[][] a1, int [][] a2, int [][] a3) { for(var i = 0; i < 2; i=i+1;) { for(var j = 0; j < 4; j=j+1;) { for(var k = 0; k < 3; k=k+1;) { a3[i][j] = a3[i][j] + a1[i][k] * a2[k][j]; } } } return; } /* http://www.edcc.edu/faculty/paul.bladek/Cmpsc142/matmult.htm */ void matrix_MultAlt(int[][] a1, int[][] a2, int[][] a3) { for(var i = 0; i < 2; i=i+1;) { for(var j = 0; j < 4; j=j+1;) { a3[i][j] = dot3(a1, a2, i, j); } } return; } /* http://www.edcc.edu/faculty/paul.bladek/Cmpsc142/matmult.htm */ int dot3(int[][] a1, int[][] a2, int row, int col) { var sum = 0; for(var k = 0; k < 3; k=k+1;) { sum = sum + a1[row][k] * a2[k][col]; } return sum; } /* http://www.edcc.edu/faculty/paul.bladek/Cmpsc142/matmult.htm */ void prnNx4 (int[][] ar, int n) { for(var i = 0; i < n; i=i+1;) { for(var j = 0; j < 4; j=j+1;) { print_int(ar[i][j]); print_string (" "); } print_string("\t"); } return; }