IP Library › Granted Patent US 9,489,405
Granted Patent B2
US 9,489,405 · App. 13/168,937 · Granted Nov 8, 2016

Geometric array data structure

Inventor: Michael S. Fulton (Maple Ridge, CA)
Assignee: International Business Machines Corporation
G06F17/30312
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,489,405
App. No.
13/168,937
Granted
Nov 8, 2016
Kind
B2
Abstract

A method for implementing a geometric array in a computing environment is disclosed. In one embodiment, such a method includes providing an array of slots, where each slot is configured to store a pointer. Each pointer in the array points to a block of elements. Each pointer with the exception of the first pointer in the array points to a block of elements that is twice as large as the block of elements associated with the preceding pointer. Such a structure allows the geometric array to grow by simply adding a pointer to the array that points to a new block of elements that is twice as large as the block of elements associated with the preceding pointer in the array. A corresponding computer program product, as well as a method for accessing data in the geometric array, are also disclosed.

Claims (15)

1. A computer program product to implement a geometric array in a computing environment, the computer program product comprising a non-transitory computer-usable storage medium having computer-usable program code embodied therein, the computer-usable program code comprising:

computer-usable program code to generate an array of slots, each slot configured to store a pointer, wherein each pointer in the array points to a block of elements, and each pointer with the exception of the first pointer in the array points to a block of elements that is twice as large as the block of elements associated with the preceding pointer.

2. The computer program product of claim 1 , wherein the elements within each block of elements are contiguous in memory.

3. The computer program product of claim 1 , further comprising computer-usable program code to expand the geometric array by allocating a new block of elements that is twice as large as the block of elements associated with the preceding pointer.

4. The computer program product of claim 3 , further comprising computer-usable program code to add a pointer pointing to the new block of elements to a next empty slot in the array of slots.

5. The computer program product of claim 1 , wherein the number of slots in the array is equal to N, where N is the number of bits in an address space of the computing environment.

6. The computer program product of claim 1 , wherein the number of slots in the array is less than N, where N is the number of bits in an address space of the computing environment.

7. The computer program product of claim 1 , further comprising computer-usable program code to access the i th element in the geometric array by:

calculating a binary index for the i th element;

using a leftmost “1” of the binary index to find a slot that points to a specific block of elements containing the i th element; and

using bits to the right of the leftmost “1” to find a specific element in the specific block of elements that is the i th element.

8. The computer program product of claim 7 , wherein calculating the binary index for the i th element comprises:

adding 1 to i; and

representing i+1 as a binary value to generate the binary index.

9. The computer program product of claim 1 , wherein a null value in a slot indicates that no block of elements has been allocated to the slot.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2011
From: FULTON, MICHAEL S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026499/0937 →
Continuity (1)
Related Publication 20120331257A1 · Dec 27, 2012