User Tools


Function ARRAY-ROW-MAJOR-INDEX

Syntax

  • array-row-major-index array &rest subscriptsindex

Arguments and Values

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

(defparameter *a* (make-array '(4 7) :element-type '(unsigned-byte 8)))

*A*

(array-row-major-index *a* 1 2)

9

(defparameter *b* (make-array '(2 3 4) :element-type '(unsigned-byte 8) :displaced-to *a* :displaced-index-offset 4))

*B*

(array-row-major-index *b* 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))))