Iliffe vector

In computer programming, an Iliffe vector, also known as a display, is a data structure used to implement multi-dimensional arrays.

They are often used to avoid the need for expensive multiplication operations when performing address calculation on an array element.

Their disadvantages include the need for multiple chained pointer indirections to access an element, and the extra work required to determine the next row in an n-dimensional array to allow an optimising compiler to prefetch it.

Multidimensional arrays in languages such as Java, Python (multidimensional lists), Ruby, Visual Basic .NET, Perl, PHP, JavaScript, Objective-C (when using NSArray, not a row-major C-style array), Swift, and Atlas Autocode are implemented as Iliffe vectors.

Iliffe vectors were used to implement sparse multidimensional arrays in the OLAP product Holos.