Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
|
|
@ -0,0 +1,25 @@
|
|||
func[][] mmul m1[][] m2[][] .
|
||||
for i to len m1[][]
|
||||
r[][] &= [ ]
|
||||
for j = 1 to len m2[1][]
|
||||
r[i][] &= 0
|
||||
for k to len m2[][]
|
||||
r[i][j] += m1[i][k] * m2[k][j]
|
||||
.
|
||||
.
|
||||
.
|
||||
return r[][]
|
||||
.
|
||||
func[][] mexp m[][] e .
|
||||
n = len m[][]
|
||||
len r[][] n
|
||||
for i to n
|
||||
len r[i][] n
|
||||
r[i][i] = 1
|
||||
.
|
||||
for i to e
|
||||
r[][] = mmul r[][] m[][]
|
||||
.
|
||||
return r[][]
|
||||
.
|
||||
print mexp [ [ 4 3 ] [ 2 1 ] ] 3
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
uses NumLibABC;
|
||||
|
||||
function operator **(m: Matrix; exp: integer): Matrix;
|
||||
extensionmethod;
|
||||
begin
|
||||
Assert(m.ColCount = m.RowCount, 'Matrix must be square.');
|
||||
Assert(exp >= 0, 'Negative exponents not supported');
|
||||
result := Matrix.Diag(m.RowCount, 1);
|
||||
loop exp do result := result * m;
|
||||
end;
|
||||
|
||||
begin
|
||||
var A := new Matrix(2, 2, 1, 1, 1, 0);
|
||||
'Original: '.Println;
|
||||
A.Println;
|
||||
A := A ** 10;
|
||||
'Raised to the power of 10: '.Println;
|
||||
A.Println;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue