A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
|
|
@ -0,0 +1,9 @@
|
|||
(defun matrix-multiply (a b)
|
||||
(flet ((col (mat i) (mapcar #'(lambda (row) (elt row i)) mat))
|
||||
(row (mat i) (elt mat i)))
|
||||
(loop for row from 0 below (length a)
|
||||
collect (loop for col from 0 below (length (row b 0))
|
||||
collect (apply #'+ (mapcar #'* (row a row) (col b col)))))))
|
||||
|
||||
;; example use:
|
||||
(matrix-multiply '((1 2) (3 4)) '((-3 -8 3) (-2 1 4)))
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
(defun matrix-multiply (matrix1 matrix2)
|
||||
(mapcar
|
||||
(lambda (row)
|
||||
(apply #'mapcar
|
||||
(lambda (&rest column)
|
||||
(apply #'+ (mapcar #'* row column))) matrix2)) matrix1))
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
(defun mmul (A B)
|
||||
(let* ((m (car (array-dimensions A)))
|
||||
(n (cadr (array-dimensions A)))
|
||||
(l (cadr (array-dimensions B)))
|
||||
(C (make-array `(,m ,l) :initial-element 0)))
|
||||
(loop for i from 0 to (- m 1) do
|
||||
(loop for k from 0 to (- l 1) do
|
||||
(setf (aref C i k)
|
||||
(loop for j from 0 to (- n 1)
|
||||
sum (* (aref A i j)
|
||||
(aref B j k))))))
|
||||
C))
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
(mmul #2a((1 2) (3 4)) #2a((-3 -8 3) (-2 1 4)))
|
||||
#2A((-7 -6 11) (-17 -20 25))
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
(defun mmult (a b)
|
||||
(loop
|
||||
with m = (array-dimension a 0)
|
||||
with n = (array-dimension a 1)
|
||||
with l = (array-dimension b 1)
|
||||
with c = (make-array (list m l) :initial-element 0)
|
||||
for i below m do
|
||||
(loop for k below l do
|
||||
(setf (aref c i k)
|
||||
(loop for j below n
|
||||
sum (* (aref a i j)
|
||||
(aref b j k)))))
|
||||
finally (return c)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue