Skip to content
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
..
Failed to load latest commit information.
Makefile
README.md
config.h
list.h
ohamt.c
ohamt.h
ohamt_bitmap.h
ohamt_mem.c
ohamt_mem.h
ohamt_sort.c
queue.h

README.md

The data structure is based on a 64-elements wide trie. We may assume that the architecture has a fast 64-bit popcnt command, although it's not a requirement.

User supplied values are 40-bit wide, and must be resolvable by a user supplied callback function to 128-bit wide key. The last of 40 bits must be clear, so it's actually 39 user-supplied bits.

The hard part in this data structure is memory allocation. Values, with last bit set, are treated as 'pointers' or actually references to a pointer. Memory allocation code resolves this 39-bit value to a proper pointer.

In order to resolve this value, memory allocator understands the value as: 6 bits - how wide is the object (8+5*x bytes wide, x is <1, 64>) 23 bits - 'page' number 10 bits - index of element in a page 1 bit - reserved

Something went wrong with that request. Please try again.