Accesses a typed aref vector efficiently.
typed-aref type vector byte-index => value
(setf typed-aref) value type vector byte-index => value
A type specifier.
A vector created by make-typed-aref-vector.
A non-negative fixnum.
An object of type type.
typed-aref allows efficient access to a typed aref vector.
The following values of type are accepted:
Additionally in 64-bit LispWorks only, the following values of type are also accepted:
vector must be an object returned by make-typed-aref-vector.
byte-index specifies the index in 8-bit bytes from the start of the data in the vector. It must be a non-negative fixnum which is less than the byte-length argument passed to make-typed-aref-vector.
(setf typed-aref) will be inlined to code which is as efficient as possible when compiled with
(optimize (safety 0)) and a constant type. As usual, you need to add
(optimize (float 0)) to remove boxing for the float types.
Efficient access to foreign arrays is also available. See
fli:foreign-typed-aref in the
LispWorks Foreign Language Interface User Guide and Reference Manual
(defun double-float-typed-aref-incf (x y z)
(declare (optimize (float 0) (safety 0)))
(incf (sys:typed-aref 'double-float x y)
(the double-float z))
LispWorks User Guide and Reference Manual - 13 Feb 2015