27 lines
747 B
Plaintext
27 lines
747 B
Plaintext
const type: matrix is array array float;
|
|
|
|
const func matrix: (in matrix: left) * (in matrix: right) is func
|
|
result
|
|
var matrix: result is matrix.value;
|
|
local
|
|
var integer: i is 0;
|
|
var integer: j is 0;
|
|
var integer: k is 0;
|
|
var float: accumulator is 0.0;
|
|
begin
|
|
if length(left[1]) <> length(right) then
|
|
raise RANGE_ERROR;
|
|
else
|
|
result := length(left) times length(right[1]) times 0.0;
|
|
for i range 1 to length(left) do
|
|
for j range 1 to length(right) do
|
|
accumulator := 0.0;
|
|
for k range 1 to length(left) do
|
|
accumulator +:= left[i][k] * right[k][j];
|
|
end for;
|
|
result[i][j] := accumulator;
|
|
end for;
|
|
end for;
|
|
end if;
|
|
end func;
|