Return the :dimensions from the header of a 1- or
(dimensions 'delta1 a)
(dimensions name alist)
where name is arbitrary and alist is a 1- or 2-dimensional array.
This function returns the dimensions list of the array alist. That list
will either be of the form (dim1) or (dim1 dim2), depending on
whether alist is a 1- or 2-dimensional array. Dim1 and dim2
will be integers and each exceed by 1 the maximum legal corresponding index.
Thus, if dimensions returns, say, '(100) for an array a named
'delta1, then (aref1 'delta1 a 99) is legal but (aref1 'delta1 a
100) violates the guards on aref1. Dimensions operates
in virtually constant time if alist is the semantic value of name.
(defun dimensions (name l)
(declare (xargs :guard (or (array1p name l) (array2p name l))))
(cadr (assoc-keyword :dimensions (cdr (header name l)))))