Science Fair Project Encyclopedia
Iliffe vector
In computer programming, an Iliffe vector is a data structure used to implement multi-dimensional arrays.
Named after John K. Iliffe, an Iliffe vector for an n dimensional array (where n>2) consists of a vector (or 1 dimensional array) of pointers to an n-1 dimensional array.
The Iliffe vector for a 2-dimensional array is simply a vector of pointers to vectors of data, i.e., the Iliffe vector represents the columns of an array where each column element is a pointer to a row vector.
It is often used to avoid the need for expensive multiplication operations when performing address calculation on an array element. It can also be used to implement triangular arrays, or other kinds of irregularly shaped arrays.
It's disadvantages are the need for multiple dependant pointer indirections to access an element, and extra work associated with determining the next row in an n-dimensional array to allow an optimising compiler to prefetch it. Both of these cause significant slow downs on systems where the CPU is significantly faster than main memory.
Multidimensional arrays in languages such as C and Atlas Autocode are implemented in this fashion.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


