Blender V2.61 - r43446
|
#include "gim_radixsort.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... | |
Defines | |
#define | GIM_INVALID_HASH 0xffffffff |
A very very high value. | |
#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 | |
#define | GIM_NUM_PRIME 28 |
Functions | |
template<typename T > | |
void | gim_sort_hash_node_array (T *array, GUINT array_count) |
Sorting for hash table. | |
GUINT | gim_next_prime (GUINT number) |
Variables | |
static const GUINT | gim_prime_list [GIM_NUM_PRIME] |
#define GIM_DEFAULT_HASH_TABLE_NODE_SIZE 4 |
Definition at line 40 of file gim_hash_table.h.
Referenced by gim_hash_table< T >::check_for_switching_to_hashtable(), and gim_hash_table< T >::switch_to_hashtable().
#define GIM_DEFAULT_HASH_TABLE_SIZE 380 |
Definition at line 39 of file gim_hash_table.h.
Referenced by gim_hash_table< T >::gim_hash_table(), and gim_hash_table< T >::switch_to_hashtable().
#define GIM_HASH_TABLE_GROW_FACTOR 2 |
Definition at line 41 of file gim_hash_table.h.
#define GIM_INVALID_HASH 0xffffffff |
A very very high value.
Definition at line 38 of file gim_hash_table.h.
Referenced by gim_hash_table< T >::_assign_hash_table_cell(), gim_hash_table< T >::_erase_by_index_hash_table(), gim_hash_table< T >::_erase_hash_table(), gim_hash_table< T >::_erase_unsorted(), gim_hash_table< T >::_find_avaliable_cell(), gim_hash_table< T >::_find_cell(), gim_hash_table< T >::_insert_hash_table(), gim_hash_table< T >::_insert_hash_table_replace(), gim_hash_table< T >::_insert_sorted(), gim_hash_table< T >::_insert_sorted_replace(), gim_hash_table< T >::_insert_unsorted(), gim_hash_table< T >::_invalidate_keys(), gim_hash_table< T >::_rehash(), gim_hash_table< T >::clear(), gim_hash_table< T >::erase_by_key(), gim_hash_table< T >::find(), and gim_hash_table< T >::get_value().
#define GIM_MIN_RADIX_SORT_SIZE 860 |
calibrated on a PIII
Definition at line 43 of file gim_hash_table.h.
Referenced by gim_sort_hash_node_array().
#define GIM_NUM_PRIME 28 |
Definition at line 151 of file gim_hash_table.h.
Referenced by gim_next_prime().
GUINT gim_next_prime | ( | GUINT | number | ) | [inline] |
Definition at line 163 of file gim_hash_table.h.
References gim_binary_search(), GIM_NUM_PRIME, gim_prime_list, and GUINT.
Referenced by gim_hash_table< T >::_reserve_table_memory().
void gim_sort_hash_node_array | ( | T * | array, |
GUINT | array_count | ||
) |
Sorting for hash table.
switch automatically between quicksort and radixsort
Definition at line 132 of file gim_hash_table.h.
References gim_heap_sort(), GIM_MIN_RADIX_SORT_SIZE, and gim_radix_sort().
Referenced by gim_hash_table< T >::sort().
const GUINT gim_prime_list[GIM_NUM_PRIME] [static] |
{ 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 153 of file gim_hash_table.h.
Referenced by gim_next_prime().