![]() |
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().