From eaedaf8a357f2ec1fc87f6456968695fbe1f646c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Renaud=20Casenave-P=C3=A9r=C3=A9?= Date: Sun, 2 Nov 2014 15:58:12 +0900 Subject: [PATCH] add a function to transpose a matrix (suboptimal) --- src/maths/matrix.lisp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/maths/matrix.lisp b/src/maths/matrix.lisp index 453efb9..7bea417 100644 --- a/src/maths/matrix.lisp +++ b/src/maths/matrix.lisp @@ -53,6 +53,13 @@ do (setf (aref mat i i) (aref vec i))) mat) +(defun transpose (mat) + (let ((transposed (mat-null (array-element-type mat) (array-dimension mat 1) (array-dimension mat 0)))) + (loop for i below (array-dimension mat 0) + do (loop for j below (array-dimension mat 1) + do (setf (aref transposed j i) (aref mat i j)))) + transposed)) + (defun add-mat (mat-a mat-b) (let* ((mat (mat-null (array-element-type mat-a) (array-dimension mat-a 0) (array-dimension mat-a 1))) (len (array-total-size mat)))