Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
9
Task/Matrix-multiplication/Ol/matrix-multiplication-1.ol
Normal file
9
Task/Matrix-multiplication/Ol/matrix-multiplication-1.ol
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
; short version based on 'apply'
|
||||
(define (matrix-multiply matrix1 matrix2)
|
||||
(map
|
||||
(lambda (row)
|
||||
(apply map
|
||||
(lambda column
|
||||
(apply + (map * row column)))
|
||||
matrix2))
|
||||
matrix1))
|
||||
28
Task/Matrix-multiplication/Ol/matrix-multiplication-2.ol
Normal file
28
Task/Matrix-multiplication/Ol/matrix-multiplication-2.ol
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
; long version based on recursive cycles
|
||||
(define (matrix-multiply A B)
|
||||
(define m (length A))
|
||||
(define n (length (car A)))
|
||||
(assert (eq? (length B) n) ===> #true)
|
||||
(define q (length (car B)))
|
||||
(define (at m x y)
|
||||
(lref (lref m x) y))
|
||||
|
||||
|
||||
(let mloop ((i (- m 1)) (rows #null))
|
||||
(if (< i 0)
|
||||
rows
|
||||
(mloop
|
||||
(- i 1)
|
||||
(cons
|
||||
(let rloop ((j (- q 1)) (r #null))
|
||||
(if (< j 0)
|
||||
r
|
||||
(rloop
|
||||
(- j 1)
|
||||
(cons
|
||||
(let loop ((k 0) (c 0))
|
||||
(if (eq? k n)
|
||||
c
|
||||
(loop (+ k 1) (+ c (* (at A i k) (at B k j))))))
|
||||
r))))
|
||||
rows)))))
|
||||
23
Task/Matrix-multiplication/Ol/matrix-multiplication-3.ol
Normal file
23
Task/Matrix-multiplication/Ol/matrix-multiplication-3.ol
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
; [372x17] * [17x372]
|
||||
(define M 372)
|
||||
(define N 17)
|
||||
|
||||
; [0 1 2 ... 371]
|
||||
; [1 2 3 ... 372]
|
||||
; [2 3 4 ... 373]
|
||||
; ...
|
||||
; [16 17 ... 387]
|
||||
(define A (map (lambda (i)
|
||||
(iota M i))
|
||||
(iota N)))
|
||||
|
||||
; [0 1 2 ... 16]
|
||||
; [1 2 3 ... 17]
|
||||
; [2 3 4 ... 18]
|
||||
; ...
|
||||
; [371 372 ... 387]
|
||||
(define B (map (lambda (i)
|
||||
(iota N i))
|
||||
(iota M)))
|
||||
|
||||
(for-each print (matrix-multiply A B))
|
||||
Loading…
Add table
Add a link
Reference in a new issue