Browse Prior Art Database

Addressing Arrays by Shells

IP.com Disclosure Number: IPCOM000076530D
Original Publication Date: 1972-Mar-01
Included in the Prior Art Database: 2005-Feb-24
Document File: 2 page(s) / 34K

Publishing Venue

IBM

Related People

Rosenberg, AL: AUTHOR [+2]

Abstract

A method for the sequential allocation of storage for arrays is provided. The method uniformly handles arrays of any given dimension (dimension = number of coordinates) provided that the array is equilateral; i.e., the sizes in all dimensions are the same.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 76% of the total text.

Page 1 of 2

Addressing Arrays by Shells

A method for the sequential allocation of storage for arrays is provided. The method uniformly handles arrays of any given dimension (dimension = number of coordinates) provided that the array is equilateral; i.e., the sizes in all dimensions are the same.

The algorithm associates with a given array alpha a symbolic base address A and a displacement function L(n), depending only on the dimension n (no declarations required). The location assigned to element alpha(I(n),...,I(1)) of the array is then A + L(n)(I(n),...,I(1))-1.

For each integer n > 0, the function L(n) is specified recursively as follows:

(Image Omitted)

This is a method for sequentially addressing equilateral arrays of arbitrary dimension, with no necessity for declaration of size or dimension prior to use.

In the environment of dynamic storage allocation, the method requires no compile time declarations. Similarly, since each function L(n) works for any n- dimensional array, no information about Size or dimension need be transmitted among procedures which access any particular array.

Another advantage of this method is that it stores arrays by "shells". This means that when one wishes to augment an n-dimensional array A of size N (i.e., an N x N x ... x N array) to one of size N+1 (an (N+1) x ... x (N+1)) array, the method stores the new elements, A(I(n),..., I(1)) with max(I(n),..., I(1)) = N+1, in the (N+1)/n/- N/n/ locations immediately following the present storage...