70 lines
1.7 KiB
Text
70 lines
1.7 KiB
Text
|
|
|
||
|
|
/* 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;
|
||
|
|
}
|
||
|
|
|