[movitz-cvs] CVS update: movitz/losp/muerte/arrays.lisp

Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv22106 Modified Files: arrays.lisp Log Message: Fixed array-dimensions, added array-rank. Date: Sun Aug 14 13:35:52 2005 Author: ffjeld Index: movitz/losp/muerte/arrays.lisp diff -u movitz/losp/muerte/arrays.lisp:1.53 movitz/losp/muerte/arrays.lisp:1.54 --- movitz/losp/muerte/arrays.lisp:1.53 Sat Jun 11 02:01:56 2005 +++ movitz/losp/muerte/arrays.lisp Sun Aug 14 13:35:52 2005 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld <frodef@acm.org> ;;;; Created at: Sun Feb 11 23:14:04 2001 ;;;; -;;;; $Id: arrays.lisp,v 1.53 2005/06/11 00:01:56 ffjeld Exp $ +;;;; $Id: arrays.lisp,v 1.54 2005/08/14 11:35:52 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------ @@ -134,8 +134,17 @@ (memref array (movitz-type-slot-offset 'movitz-basic-vector 'num-elements))))) (defun array-dimensions (array) + (let (r) + (dotimes (d (array-rank array)) + (push (array-dimension array d) r)) + (nreverse r))) + +(defun array-rank (array) (etypecase array - (vector 1))) + (indirect-vector + 1) + ((simple-array * 1) + 1))) (defun shrink-vector (vector new-size) (check-type vector vector)
participants (1)
-
ffjeld@common-lisp.net