Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
105
Task/Matrix-multiplication/Logo/matrix-multiplication.logo
Normal file
105
Task/Matrix-multiplication/Logo/matrix-multiplication.logo
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
TO LISTVMD :A :F :C :NV
|
||||
;PROCEDURE LISTVMD
|
||||
;A = LIST
|
||||
;F = ROWS
|
||||
;C = COLS
|
||||
;NV = NAME OF MATRIX / VECTOR NEW
|
||||
;this procedure transform a list in matrix / vector square or rect
|
||||
|
||||
(LOCAL "CF "CC "NV "T "W)
|
||||
MAKE "CF 1
|
||||
MAKE "CC 1
|
||||
MAKE "NV (MDARRAY (LIST :F :C) 1)
|
||||
MAKE "T :F * :C
|
||||
FOR [Z 1 :T][MAKE "W ITEM :Z :A
|
||||
MDSETITEM (LIST :CF :CC) :NV :W
|
||||
MAKE "CC :CC + 1
|
||||
IF :CC = :C + 1 [MAKE "CF :CF + 1 MAKE "CC 1]]
|
||||
OUTPUT :NV
|
||||
END
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
|
||||
TO XX
|
||||
; MAIN PROGRAM
|
||||
;LRCVS 10.04.12
|
||||
; THIS PROGRAM multiplies two "square" matrices / vector ONLY!!!
|
||||
; THE RECTANGULAR NOT WORK!!!
|
||||
|
||||
CT CS HT
|
||||
|
||||
; FIRST DATA MATRIX / VECTOR
|
||||
MAKE "A [1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49]
|
||||
MAKE "FA 5 ;"ROWS
|
||||
MAKE "CA 5 ;"COLS
|
||||
|
||||
; SECOND DATA MATRIX / VECTOR
|
||||
MAKE "B [2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50]
|
||||
MAKE "FB 5 ;"ROWS
|
||||
MAKE "CB 5 ;"COLS
|
||||
|
||||
|
||||
IF (OR :FA <> :CA :FB <>:CB) [PRINT "Las_matrices/vector_no_son_cuadradas THROW
|
||||
"TOPLEVEL ]
|
||||
IFELSE (OR :CA <> :FB :FA <> :CB) [PRINT
|
||||
"Las_matrices/vector_no_son_compatibles THROW "TOPLEVEL ][MAKE "MA LISTVMD :A
|
||||
:FA :CA "MA MAKE "MB LISTVMD :B :FB :CB "MB] ;APPLICATION <<< "LISTVMD"
|
||||
|
||||
PRINT (LIST "THIS_IS: "ROWS "X "COLS)
|
||||
PRINT []
|
||||
PRINT (LIST :MA "=_M1 :FA "ROWS "X :CA "COLS)
|
||||
PRINT []
|
||||
PRINT (LIST :MB "=_M2 :FA "ROWS "X :CA "COLS)
|
||||
PRINT []
|
||||
|
||||
|
||||
MAKE "T :FA * :CB
|
||||
MAKE "RE (ARRAY :T 1)
|
||||
|
||||
|
||||
MAKE "CO 0
|
||||
FOR [AF 1 :CA][
|
||||
FOR [AC 1 :CA][
|
||||
MAKE "TEMP 0
|
||||
FOR [I 1 :CA ][
|
||||
MAKE "TEMP :TEMP + (MDITEM (LIST :I :AF) :MA) * (MDITEM (LIST :AC :I) :MB)]
|
||||
MAKE "CO :CO + 1
|
||||
SETITEM :CO :RE :TEMP]]
|
||||
|
||||
|
||||
PRINT []
|
||||
PRINT (LIST "THIS_IS: :FA "ROWS "X :CB "COLS)
|
||||
SHOW LISTVMD :RE :FA :CB "TO ;APPLICATION <<< "LISTVMD"
|
||||
END
|
||||
|
||||
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\
|
||||
|
||||
|
||||
M1 * M2 RESULT / SOLUTION
|
||||
|
||||
1 3 5 7 9 2 4 6 8 10 830 1880 2930 3980 5030
|
||||
11 13 15 17 19 12 14 16 18 20 890 2040 3190 4340 5490
|
||||
21 23 25 27 29 X 22 24 26 28 30 = 950 2200 3450 4700 5950
|
||||
31 33 35 37 39 32 34 36 38 40 1010 2360 3710 5060 6410
|
||||
41 43 45 47 49 42 44 46 48 50 1070 2520 3970 5420 6870
|
||||
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\
|
||||
|
||||
|
||||
NOW IN LOGO!!!!
|
||||
|
||||
|
||||
THIS_IS: ROWS X COLS
|
||||
|
||||
{{1 3 5 7 9} {11 13 15 17 19} {21 23 25 27 29} {31 33 35 37 39} {41 43 45 47
|
||||
49}} =_M1 5 ROWS X 5 COLS
|
||||
|
||||
{{2 4 6 8 10} {12 14 16 18 20} {22 24 26 28 30} {32 34 36 38 40} {42 44 46 48
|
||||
50}} =_M2 5 ROWS X 5 COLS
|
||||
|
||||
|
||||
THIS_IS: 5 ROWS X 5 COLS
|
||||
{{830 1880 2930 3980 5030} {890 2040 3190 4340 5490} {950 2200 3450 4700 5950}
|
||||
{1010 2360 3710 5060 6410} {1070 2520 3970 5420 6870}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue