#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | FastAllocFreeNode |
struct | FastAllocArena |
struct | FastAllocController |
struct | vEBPNodeTypeIndicator |
struct | vEBMPNodeTypeIndicator |
struct | coveb_bq |
struct | coveb_mq |
struct | vEBFullNode |
struct | vEBMPayloadStatic |
payload of up to 32 bytes More... | |
struct | vEBSingleNode |
struct | vEBMPDatum |
32-bit unsigned integer with payload of up to 32 bytes More... | |
struct | vEBMSingleNode |
struct | vEBMFullNode |
struct | vEBSimpleBitTable |
struct | vEBPNode |
struct | vEBMPNode |
struct | vEBPSearchResult |
struct | vEBMPSearchResult |
Defines | |
#define | USE_FAST_ALLOCATOR 1 |
#define | MAXBLOCKSIZES 32 |
#define | COVEB_KEYTYPE uint32_t |
#define | MASK_TOTFULL 0x00000010 |
#define | MASK_TOPSIDE 0x00000020 |
#define | MAXDIRECTK 5 |
Functions | |
struct coveb_bq * | coveb_bq_new (void) |
struct coveb_bq * | coveb_bq_clone (const struct coveb_bq *q) |
void | coveb_bq_free (struct coveb_bq *q) |
void | coveb_bq_insert (struct coveb_bq *q, uint32_t x) |
uint32_t | coveb_bq_extractmin (struct coveb_bq *q) |
uint32_t | coveb_bq_remove (struct coveb_bq *q, uint32_t m) |
uint32_t | coveb_bq_size (const struct coveb_bq *q) |
uint32_t | coveb_bq_contains (const struct coveb_bq *q, uint32_t x) |
uint32_t | coveb_bq_addresses_full (const struct coveb_bq *q) |
void | coveb_bq_locate_smallest_not_less_than (const struct coveb_bq *q, uint32_t incl_lower_bound, uint32_t *result_x, uint32_t *gotresult) |
void | coveb_bq_successor (const struct coveb_bq *q, uint32_t excl_lower_bound, uint32_t *result_x, uint32_t *gotresult) |
uint32_t | coveb_bq_max (const struct coveb_bq *q) |
uint32_t | coveb_bq_min (const struct coveb_bq *q) |
void | coveb_failout (const char *msg) |
struct coveb_mq * | coveb_mq_new (uint32_t payload_bits) |
struct coveb_mq * | coveb_mq_clone (const struct coveb_mq *q) |
void | coveb_mq_free (struct coveb_mq *q) |
void | coveb_mq_insert (struct coveb_mq *q, struct vEBMPDatum x) |
struct vEBMPDatum | coveb_mq_extractmin (struct coveb_mq *q) |
struct vEBMPDatum | coveb_mq_min (const struct coveb_mq *q) |
struct vEBMPDatum | coveb_mq_max (const struct coveb_mq *q) |
void | coveb_mq_locate_smallest_not_less_than (const struct coveb_mq *q, uint32_t incl_lower_bound, struct vEBMPDatum *result_x, uint32_t *gotresult) |
struct vEBMPDatum | fetch_from_bottom_table (struct vEBMPNode *v, uint32_t ind) |
void | store_to_bottom_table (struct vEBMPNode *v, struct vEBMPDatum d, uint32_t ind) |
uint32_t | coveb_mq_remove (struct coveb_mq *q, uint32_t x) |
uint32_t | coveb_mq_addresses_full (const struct coveb_mq *q) |
uint32_t | coveb_mq_size (const struct coveb_mq *q) |
uint32_t | coveb_mq_contains (const struct coveb_mq *q, uint32_t x) |
void | coveb_mq_successor (const struct coveb_mq *q, uint32_t num, struct vEBMPDatum *result_x, uint32_t *gotresult) |
uint32_t coveb_bq_addresses_full | ( | const struct coveb_bq * | q | ) |
Test if the queue contains all 32-bit unsigned integers or not.
q | bitwise priority queue to be tested |
struct coveb_bq* coveb_bq_clone | ( | const struct coveb_bq * | q | ) | [read] |
Copies a bitwise priority queue.
q | bitwise priority queue to be copied |
uint32_t coveb_bq_contains | ( | const struct coveb_bq * | q, | |
uint32_t | x | |||
) |
Determines whether or not the queue contains a specific element.
q | pointer to input bitwise priority queue | |
x | 32-bit unsigned integer to search for in the queue |
uint32_t coveb_bq_extractmin | ( | struct coveb_bq * | q | ) |
Remove the smallest element from the queue.
q | pointer to input bitwise priority queue |
void coveb_bq_free | ( | struct coveb_bq * | q | ) |
Deallocate (or free) a bitwise priority queue.
q | bitwise priority queue to be deallocated |
void coveb_bq_insert | ( | struct coveb_bq * | q, | |
uint32_t | x | |||
) |
Insert an element into the queue.
q | bitwise priority queue to be scanned | |
x | 32-bit unsigned integer to be inserted |
void coveb_bq_locate_smallest_not_less_than | ( | const struct coveb_bq * | q, | |
uint32_t | incl_lower_bound, | |||
uint32_t * | result_x, | |||
uint32_t * | gotresult | |||
) |
Find the smallest element in the queue at least as big as a given lower boundary point.
q | bitwise priority queue to be scanned | |
incl_lower_bound | 32-bit unsigned integer lower boundary point | |
result_x | pointer to 32-bit unsigned integer output result buffer | |
gotresult | pointer to 32-bit unsigned integer flag |
uint32_t coveb_bq_max | ( | const struct coveb_bq * | q | ) |
Find the maximum element in the queue.
q | pointer to input bitwise priority queue |
uint32_t coveb_bq_min | ( | const struct coveb_bq * | q | ) |
Find the minimum element in the queue.
q | pointer to input bitwise priority queue |
struct coveb_bq* coveb_bq_new | ( | void | ) | [read] |
Allocates a new bitwise priority queue. A bitwise priority queue holds a set of 32-bit unsigned integers.
uint32_t coveb_bq_remove | ( | struct coveb_bq * | q, | |
uint32_t | x | |||
) |
Remove an element from the queue.
q | pointer to input bitwise priority queue | |
x | value to be removed |
uint32_t coveb_bq_size | ( | const struct coveb_bq * | q | ) |
Returns the number of elements stored in a priority queue.
q | pointer to input bitwise priority queue |
void coveb_bq_successor | ( | const struct coveb_bq * | q, | |
uint32_t | num, | |||
uint32_t * | result_x, | |||
uint32_t * | gotresult | |||
) |
Find the element in the queue after a given lower boundary point.
q | bitwise priority queue to be scanned | |
num | 32-bit unsigned integer lower boundary point | |
result_x | pointer to 32-bit unsigned integer output result buffer | |
gotresult | pointer to 32-bit unsigned integer flag |
uint32_t coveb_mq_addresses_full | ( | const struct coveb_mq * | q | ) |
Test if the queue contains all 32-bit unsigned integers or not.
q | mapping priority queue to be tested |
struct coveb_mq* coveb_mq_clone | ( | const struct coveb_mq * | q | ) | [read] |
Copies a mapping priority queue.
q | mapping priority queue to be copied |
uint32_t coveb_mq_contains | ( | const struct coveb_mq * | q, | |
uint32_t | x | |||
) |
Determines whether or not the queue contains a specific element.
q | pointer to input mapping priority queue | |
x | 32-bit unsigned integer to search for in the queue |
struct vEBMPDatum coveb_mq_extractmin | ( | struct coveb_mq * | q | ) | [read] |
Remove the smallest element from the queue.
q | pointer to input mapping priority queue |
void coveb_mq_free | ( | struct coveb_mq * | q | ) |
Deallocate (or free) a mapping priority queue.
q | mapping priority queue to be deallocated |
void coveb_mq_insert | ( | struct coveb_mq * | q, | |
struct vEBMPDatum | x | |||
) |
Insert an element into the queue.
q | mapping priority queue to be scanned | |
x | 32-bit unsigned integer _x to be inserted with payload _p. |
struct vEBMPDatum coveb_mq_max | ( | const struct coveb_mq * | q | ) | [read] |
Find the maximum element in the queue.
q | pointer to input mapping priority queue |
struct coveb_mq* coveb_mq_new | ( | uint32_t | payload_bits | ) | [read] |
Allocates a new mapping priority queue. A mapping priority queue has extra space reserved for a user-defined payload of a specific number of bits. This number is called payload_bits and must be an even power of two between 1 and 256, inclusive. This is the amount of space that can be stored with each unsigned 32-bit integer entry in a mapping priority queue. This data structure makes it easy to extend the basic fast priority queue operations with your own special custom data structures and operations. Just use a 32-bit payload to store pointers to your own objects, or store them directly in 4, 8, 16, or 32 bytes.
payload_bits | number of bits of space to store per entry in this queue |
uint32_t coveb_mq_remove | ( | struct coveb_mq * | q, | |
uint32_t | x | |||
) |
Remove an element from the queue.
q | pointer to input mapping priority queue | |
x | value to be removed |
uint32_t coveb_mq_size | ( | const struct coveb_mq * | q | ) |
Returns the number of elements stored in a priority queue.
q | pointer to input mapping priority queue |
void coveb_mq_successor | ( | const struct coveb_mq * | q, | |
uint32_t | num, | |||
struct vEBMPDatum * | result_x, | |||
uint32_t * | gotresult | |||
) |
Find the element in the queue after a given lower boundary point.
q | mapping priority queue to be scanned | |
num | 32-bit unsigned integer lower boundary point | |
result_x | pointer to struct vEBMPDatum output result buffer | |
gotresult | pointer to 32-bit unsigned integer flag |