IP Library › Granted Patent US 9,535,937
Granted Patent B2
US 9,535,937 · App. 13/431,976 · Granted Jan 3, 2017

Geometric array data structure

Inventor: Michael Stephen 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,535,937
App. No.
13/431,976
Filed
Mar 28, 2012
Granted
Jan 3, 2017
Kind
B2
Art Unit
2132
USPC
711/202
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 (22)

1. A method for implementing a geometric array in a computing environment, the method comprising:

providing 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 method of claim 1 , wherein the elements within each block of elements are contiguous in memory.

3. The method of claim 1 , further comprising expanding 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 method of claim 3 , wherein allocating the new block of elements further comprises adding a pointer pointing to the new block of elements to a next empty slot in the array of slots.

5. The method 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 method 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 method of claim 1 , further comprising accessing the i th element in the geometric array substantially as follows:

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 method 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 method of claim 1 , wherein a null value in a slot indicates that no block of elements has been allocated to the slot.

10. A method for accessing the i th element in a geometric array, the geometric array comprising an array of slots, each slot configured to store a pointer pointing to a block of elements, and each pointer with the exception of the first pointer pointing to a block of elements that is twice as large as the block of elements associated with the preceding pointer, the method comprising:

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.

11. The method of claim 10 , 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2016
From: FULTON, MICHAEL S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040000/0948 →
Continuity (2)
Continuation 13168937 · Jun 25, 2011
Related Publication 20120331259A1 · Dec 27, 2012