Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,42 @@
|
|||
LOCAL ARRAY a[4,2], b[2,3], c[4,3]
|
||||
CLOSE DATABASES ALL
|
||||
*!* The arrays could be created directly but I prefer to do this:
|
||||
CREATE CURSOR mat1 (c1 I, c2 I)
|
||||
CREATE CURSOR mat2 (c1 I, c2 I, c3 I)
|
||||
*!* Since matrix multiplication of integer arrays
|
||||
*!* involves only multiplication and addition,
|
||||
*!* the result will contain integers
|
||||
CREATE CURSOR result (c1 I, c2 I, c3 I)
|
||||
INSERT INTO mat1 VALUES (1, 2)
|
||||
INSERT INTO mat1 VALUES (3, 4)
|
||||
INSERT INTO mat1 VALUES (5, 6)
|
||||
INSERT INTO mat1 VALUES (7, 8)
|
||||
SELECT * FROM mat1 INTO ARRAY a
|
||||
|
||||
INSERT INTO mat2 VALUES (1, 2, 3)
|
||||
INSERT INTO mat2 VALUES (4, 5, 6)
|
||||
SELECT * FROM mat2 INTO ARRAY b
|
||||
STORE 0 TO c
|
||||
MatMult(@a,@b,@c)
|
||||
SELECT result
|
||||
APPEND FROM ARRAY c
|
||||
BROWSE
|
||||
|
||||
|
||||
PROCEDURE MatMult(aa, bb, cc)
|
||||
LOCAL n As Integer, m As Integer, p As Integer, i As Integer, j As Integer, k As Integer
|
||||
IF ALEN(aa,2) = ALEN(bb,1)
|
||||
n = ALEN(aa,2)
|
||||
m = ALEN(aa,1)
|
||||
p = ALEN(bb,2)
|
||||
FOR i = 1 TO m
|
||||
FOR j = 1 TO p
|
||||
FOR k = 1 TO n
|
||||
cc[i,j] = cc[i,j] + aa[i,k]*bb[k,j]
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
ELSE
|
||||
? "Invalid dimensions"
|
||||
ENDIF
|
||||
ENDPROC
|
||||
Loading…
Add table
Add a link
Reference in a new issue