22 lines
761 B
Plaintext
22 lines
761 B
Plaintext
public rel[real, real, real] matrixMultiplication(rel[real x, real y, real v] matrix1, rel[real x, real y, real v] matrix2){
|
|
if (max(matrix1.x) == max(matrix2.y)){
|
|
p = {<x1,y1,x2,y2, v1*v2> | <x1,y1,v1> <- matrix1, <x2,y2,v2> <- matrix2};
|
|
|
|
result = {};
|
|
for (y <- matrix1.y){
|
|
for (x <- matrix2.x){
|
|
v = (0.0 | it + v | <x1, y1, x2, y2, v> <- p, x==x2 && y==y1, x1==y2 && y2==x1);
|
|
result += <x,y,v>;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
else throw "Matrix sizes do not match.";
|
|
|
|
//a matrix, given by a relation of the x-coordinate, y-coordinate and value.
|
|
public rel[real x, real y, real v] matrixA = {
|
|
<0.0,0.0,12.0>, <0.0,1.0, 6.0>, <0.0,2.0,-4.0>,
|
|
<1.0,0.0,-51.0>, <1.0,1.0,167.0>, <1.0,2.0,24.0>,
|
|
<2.0,0.0,4.0>, <2.0,1.0,-68.0>, <2.0,2.0,-41.0>
|
|
};
|