Bullet Collision Detection & Physics Library
Classes | Macros | Functions | Variables
gim_hash_table.h File Reference
#include "gim_radixsort.h"
Include dependency graph for gim_hash_table.h:

Go to the source code of this file.

Classes

struct  GIM_HASH_TABLE_NODE< T >
 
class  GIM_HASH_NODE_GET_KEY
 Macro for getting the key. More...
 
class  GIM_HASH_NODE_CMP_KEY_MACRO
 Macro for comparing the key and the element. More...
 
class  GIM_HASH_NODE_CMP_MACRO
 Macro for comparing Hash nodes. More...
 
class  gim_hash_table< T >
 A compact hash table implementation. More...
 

Macros

#define GIM_INVALID_HASH   0xffffffff
 A very very high value. More...
 
#define GIM_DEFAULT_HASH_TABLE_SIZE   380
 
#define GIM_DEFAULT_HASH_TABLE_NODE_SIZE   4
 
#define GIM_HASH_TABLE_GROW_FACTOR   2
 
#define GIM_MIN_RADIX_SORT_SIZE   860
 calibrated on a PIII More...
 
#define GIM_NUM_PRIME   28
 

Functions

template<typename T >
void gim_sort_hash_node_array (T *array, GUINT array_count)
 Sorting for hash table. More...
 
GUINT gim_next_prime (GUINT number)
 

Variables

static const GUINT gim_prime_list [GIM_NUM_PRIME]
 

Macro Definition Documentation

◆ GIM_DEFAULT_HASH_TABLE_NODE_SIZE

#define GIM_DEFAULT_HASH_TABLE_NODE_SIZE   4

Definition at line 39 of file gim_hash_table.h.

◆ GIM_DEFAULT_HASH_TABLE_SIZE

#define GIM_DEFAULT_HASH_TABLE_SIZE   380

Definition at line 38 of file gim_hash_table.h.

◆ GIM_HASH_TABLE_GROW_FACTOR

#define GIM_HASH_TABLE_GROW_FACTOR   2

Definition at line 40 of file gim_hash_table.h.

◆ GIM_INVALID_HASH

#define GIM_INVALID_HASH   0xffffffff

A very very high value.

Definition at line 37 of file gim_hash_table.h.

◆ GIM_MIN_RADIX_SORT_SIZE

#define GIM_MIN_RADIX_SORT_SIZE   860

calibrated on a PIII

Definition at line 42 of file gim_hash_table.h.

◆ GIM_NUM_PRIME

#define GIM_NUM_PRIME   28

Definition at line 139 of file gim_hash_table.h.

Function Documentation

◆ gim_next_prime()

GUINT gim_next_prime ( GUINT  number)
inline

Definition at line 150 of file gim_hash_table.h.

◆ gim_sort_hash_node_array()

template<typename T >
void gim_sort_hash_node_array ( T *  array,
GUINT  array_count 
)

Sorting for hash table.

switch automatically between quicksort and radixsort

Definition at line 125 of file gim_hash_table.h.

Variable Documentation

◆ gim_prime_list

const GUINT gim_prime_list[GIM_NUM_PRIME]
static
Initial value:
=
{
53ul, 97ul, 193ul, 389ul, 769ul,
1543ul, 3079ul, 6151ul, 12289ul, 24593ul,
49157ul, 98317ul, 196613ul, 393241ul, 786433ul,
1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,
50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,
1610612741ul, 3221225473ul, 4294967291ul}

Definition at line 141 of file gim_hash_table.h.