The nine Skandha4 array classes CLASS-BIT-ARRAY, CLASS-UNSIGNED8-ARRAY, CLASS-UNSIGNED16-ARRAY, CLASS-INT16-ARRAY, CLASS-8-BIT-FLOAT-ARRAY, CLASS-12-BIT-FLOAT-ARRAY, CLASS-16-BIT-FLOAT-ARRAY, CLASS-FLOAT-ARRAY and CLASS-INT32-ARRAY have essentially identical message protocols, and the GRAPHICS-RELATION class supports many of the same calls, so all are documented together here to reduce redundancy and confusion.
The differences between the arrays lie only in the range of values each slot in the array can represent: Bit-arrays can hold only the integers 0 and 1. Unsigned-8 arrays can hold only the integers 0 through 255 inclusive. Unsigned16 arrays can hold only the integers 0 through 65535 inclusive. Int16 arrays can hold only the integers -32767 through 327677 inclusive -- on most machines -32768 is also representable, but you shouldn't count on this. CLASS-8-BIT-FLOAT arrays internally hold only the integers 0 through 255 inclusive, but these are interpreted to the external world as floating-point values from 0.0 to 1.0 inclusive: this class is used mostly to hold color information and images. CLASS-16-BIT-FLOAT arrays are similar, but internally hold values from 0 through 65535 inclusive, while CLASS-12-BIT-FLOAT arrays internally hold values from 0 through 4095 inclusive.
Where-ever applicable, the protocol follows the CommonLisp syntax as closely as practical, except for using messages instead of functions.