[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]


Function ARRAY-ROW-MAJOR-INDEX

Syntax:

array-row-major-index array &rest subscripts => index

Arguments and Values:

array---an array.

subscripts---a list of valid array indices for the array.

index---a valid array row-major index for the array.

Description:

Computes the position according to the row-major ordering of array for the element that is specified by subscripts, and returns the offset of the element in the computed position from the beginning of array.

For a one-dimensional array, the result of array-row-major-index equals subscript.

array-row-major-index ignores fill pointers.

Examples:

 (setq a (make-array '(4 7) :element-type '(unsigned-byte 8)))
 (array-row-major-index a 1 2) => 9
 (array-row-major-index 
 (make-array '(2 3 4) 
 :element-type '(unsigned-byte 8)
 :displaced-to a
 :displaced-index-offset 4)
 0 2 1) => 9

Affected By: None.

Exceptional Situations: None.

See Also: None.

Notes:

A possible definition of array-row-major-index, with no error-checking, is

 (defun array-row-major-index (a &rest subscripts)
 (apply #'+ (maplist #'(lambda (x y)
 (* (car x) (apply #'* (cdr y))))
 subscripts
 (array-dimensions a))))


[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.

AltStyle によって変換されたページ (->オリジナル) /