The base namespace for everything in the library. More...
Namespaces | |
namespace | impl |
The namespace we use to hide the internal implementation. | |
namespace | trait |
The namespace for type traits used by the library. | |
namespace | typelist |
The typelist implementation. | |
Classes | |
class | Bench |
A lightweight stopwatch class for benchmarking. More... | |
class | dense_hashgrid |
A hashgrid with dense_hashtable as a backend. More... | |
class | dense_hashlist |
A hashlist with dense_hashtable as a backend. More... | |
class | dense_hashmap |
A STL-like hashmap with dense_hashtable as the backend. More... | |
class | dense_hashmatrix |
A hashmatrix with dense_hashtable as a backend. More... | |
class | dense_hashset |
A STL-like hashset with dense_hashtable as the backend. More... | |
struct | hash |
Hash functor. More... | |
struct | hash< std::basic_string< Ch > > |
Hash functor - spec for strings. More... | |
struct | move_trivial |
Move functor that does nothing. More... | |
class | dense_hashtable |
Hash table class from the google-sparsehash package, optimized for speed. More... | |
struct | geometric_range_iterator |
The base class for hashgrid::range_iterator and hashgrid::const_range_iterator. More... | |
struct | geometric_range_iterator< Nav, DIM_3D > |
The base class for hashgrid::range_iterator and hashgrid::const_range_iterator. More... | |
struct | geometric_path_iterator |
The base class for hashgrid::path_iterator and hashgrid::const_path_iterator. More... | |
struct | geometric_path_iterator< Nav, DIM_3D > |
The base class for hashgrid::path_iterator and hashgrid::const_path_iterator. More... | |
class | hashgraph |
A base class which adds a graph layer to a hashtable. More... | |
class | hashgrid |
A hashgraph implemented as a spatial grid. More... | |
class | hashlist |
A hashgraph implemented as a list. More... | |
class | hashmatrix |
The base class for dense_hashmatrix and sparse_hashmatrix. More... | |
struct | f_first |
Key access functor for pair-associative containers. More... | |
struct | f_self |
Key access functor for simple-associative containers. More... | |
struct | move_node |
Move functor for graph/grid containers. More... | |
struct | move_node< graph_node< Value, N > > |
Spec for graph container. More... | |
struct | move_node< grid_node< Value, D > > |
Spec for grid container. More... | |
struct | move_node< list_node< Value > > |
Spec for list container. More... | |
struct | f_access_node |
Key access functor for nodes. More... | |
struct | Point |
No-frills floating-point coordinate. More... | |
struct | Point< DIM_2D > |
No-frills floating-point coordinate. More... | |
class | table_element_adaptor |
An adaptor for lazy insertions into a sparse table. More... | |
struct | table_iterator |
Iterator type used by sparse_group & sparse_table. More... | |
struct | const_table_iterator |
Const iterator type used by sparse_group & sparse_table. More... | |
class | sparse_group |
A subset of a sparse_table. More... | |
class | sparse_hashtable |
Hash table class from the google-sparsehash package, optimized for frugal memory use. More... | |
struct | m_pow |
Power meta: value = x ^ n . More... | |
struct | m_pow< T, x, 0 > |
Stop recursion for x ^0: value = 1. More... | |
struct | m_strip_lsb |
Isolate the least significant bit. More... | |
struct | m_strip_msb |
Isolate the most significant bit. More... | |
struct | m_strip_msb< T, v, v > |
Stop recursion when there's only 1 bit left. More... | |
struct | m_log2 |
Binary logarithm meta. More... | |
struct | m_ilv |
Interleave meta. More... | |
struct | m_ilv< U, v, d, d > |
Spec to stop recursion after all components. More... | |
struct | m_uilv |
Un-interleave meta. More... | |
struct | m_uilv< U, v, d, d > |
Spec to stop recursion after all components. More... | |
struct | f_interleave |
Functor for interleaving bits. More... | |
struct | f_uninterleave |
Functor for un-interleaving bits. More... | |
union | PCoordXY |
A coordinate packed for fast conversion to and from MortonXY. More... | |
union | PCoordXYZ |
A coordinate packed for fast conversion to and from MortonXYZ. More... | |
union | MortonXY |
A data type for dealing with an interleaved 2D coordinate. More... | |
union | MortonXYZ |
A data type for dealing with an interleaved 3D coordinate. More... | |
class | PCoord |
Meta to get a pcoord type with the dimension as a template parameter. More... | |
class | PCoord< DIM_3D, U > |
Spec for 3D. More... | |
class | Morton |
Meta to get a morton type with the dimension as a template parameter. More... | |
class | Morton< DIM_3D, U > |
Spec for 3D. More... | |
class | morton_hasher |
Type-sensitive hash functor for morton-keyed hash containers. More... | |
struct | Seed |
Random number seeder. More... | |
struct | GlobalSeed |
Global random number seeder. More... | |
struct | Random |
Auto-seeded random number generator. More... | |
struct | Random< T, Global, S, true, false > |
Spec for integral types. More... | |
struct | Random< T, Global, S, false, true > |
Spec for floating-point types. More... | |
struct | Random< T, Global, 32, false, true > |
Spec for 32-bit float. More... | |
struct | Random< T, Global, 64, true, false > |
Spec for 64-bit integral types. More... | |
class | sparse_hashgrid |
A hashgrid with sparse_hashtable as a backend. More... | |
class | sparse_hashlist |
A hashlist with sparse_hashtable as a backend. More... | |
class | sparse_hashmap |
A STL-like hashmap with sparse_hashtable as the backend. More... | |
class | sparse_hashmatrix |
A hashmatrix with sparse_hashtable as a backend. More... | |
class | sparse_hashset |
A STL-like hashset with sparse_hashtable as the backend. More... | |
struct | two_d_iterator |
2D iterator used by sparse_table. More... | |
struct | const_two_d_iterator |
2D const iterator used by sparse_table. More... | |
struct | destructive_two_d_iterator |
Destructive iterator used by sparse_table. More... | |
class | sparse_table |
A container that implements a sparse array. More... | |
Typedefs | |
typedef ash::Point< DIM_2D > | PointXY |
match the naming style for MortonXY and PCoordXY | |
typedef ash::Point< DIM_3D > | PointXYZ |
match the naming style for MortonXYZ and PCoordXYZ | |
typedef typelist::list < PCoordXY< uint8 >, PCoordXY < uint16 >, PCoordXY< uint32 > , PCoordXY< uint64 > > | PCoordXY_typelist |
typedef typelist::list < PCoordXYZ< uint8 > , PCoordXYZ< uint16 > , PCoordXYZ< uint32 > , PCoordXYZ< uint64 > > | PCoordXYZ_typelist |
typedef typelist::merge < PCoordXY_typelist, PCoordXYZ_typelist >::type | PCoord_typelist |
typedef typelist::list < MortonXY< uint8 >, MortonXY < uint16 >, MortonXY< uint32 > , MortonXY< uint64 > > | MortonXY_typelist |
typedef typelist::list < MortonXYZ< uint8 > , MortonXYZ< uint16 > , MortonXYZ< uint32 > , MortonXYZ< uint64 > > | MortonXYZ_typelist |
typedef typelist::merge < MortonXY_typelist, MortonXYZ_typelist >::type | Morton_typelist |
Signed Types | |
typedef int8_t | int8 |
Signed 8-bit integer. | |
typedef int16_t | int16 |
Signed 16-bit integer. | |
typedef int32_t | int32 |
Signed 32-bit integer. | |
typedef int64_t | int64 |
Signed 64-bit integer. | |
Unsigned Types | |
typedef uint8_t | uint8 |
Unsigned 8-bit integer. | |
typedef uint16_t | uint16 |
Unsigned 16-bit integer. | |
typedef uint32_t | uint32 |
Unsigned 32-bit integer. | |
typedef uint64_t | uint64 |
Unsigned 64-bit integer. | |
Enumerations | |
enum | DIM { DIM_2D = 2, DIM_3D = 3 } |
Template parameter limiter. More... | |
enum | AXIS { AXIS_X = 0, AXIS_Y = 2, AXIS_Z = 4 } |
Functions | |
template<class Key , class T , class HashFx , class EqualKey , class Alloc > | |
void | swap (dense_hashmap< Key, T, HashFx, EqualKey, Alloc > &x, dense_hashmap< Key, T, HashFx, EqualKey, Alloc > &y) |
Global swap function. | |
template<class Val , class HashFx , class EqualKey , class Alloc > | |
void | swap (dense_hashset< Val, HashFx, EqualKey, Alloc > &x, dense_hashset< Val, HashFx, EqualKey, Alloc > &y) |
Global swap function. | |
template<typename V , typename K , class HF , class KA , class EqK , class TA > | |
void | swap (dense_hashtable< V, K, HF, KA, EqK, TA > &x, dense_hashtable< V, K, HF, KA, EqK, TA > &y) |
template<class N , typename K , class HF , class KA , class EK , class A , _ASH_HT_IMPL HT> | |
void | swap (hashgraph< N, K, HF, KA, EK, A, HT > &x, hashgraph< N, K, HF, KA, EK, A, HT > &y) |
Global swap. | |
template<typename V , class M , class KA , class A , _ASH_HT_IMPL Ht> | |
void | swap (hashgrid< V, M, KA, A, Ht > &x, hashgrid< V, M, KA, A, Ht > &y) |
Global swap. | |
template<typename V , typename K , class HF , class KA , class EK , class A , _ASH_HT_IMPL HT> | |
void | swap (hashlist< V, K, HF, KA, EK, A, HT > &x, hashlist< V, K, HF, KA, EK, A, HT > &y) |
Global swap. | |
void | swap (hashmatrix &x, hashmatrix &y) |
Global swap. | |
template<class T > | |
bool | operator== (libc_allocator_with_realloc< T > const &, libc_allocator_with_realloc< T > const &) |
template<class T > | |
bool | operator!= (libc_allocator_with_realloc< T > const &, libc_allocator_with_realloc< T > const &) |
template<class T , uint16 GSz, class TA > | |
void | swap (sparse_group< T, GSz, TA > &x, sparse_group< T, GSz, TA > &y) |
template<typename V , typename K , class HF , class KA , class EqK , class TA > | |
void | swap (sparse_hashtable< V, K, HF, KA, EqK, TA > &x, sparse_hashtable< V, K, HF, KA, EqK, TA > &y) |
template<typename U > | |
U | interleave2 (U val) |
2D bit interleave. | |
template<typename U > | |
U | uninterleave2 (U val) |
2D bit un-interleave. | |
template<typename U > | |
U | interleave3 (U val) |
3D bit interleave. | |
template<typename U > | |
U | uninterleave3 (U val) |
3D bit un-interleave. | |
template<class Key , class Data , class HashFx , class EqualKey , class Alloc > | |
void | swap (sparse_hashmap< Key, Data, HashFx, EqualKey, Alloc > &x, sparse_hashmap< Key, Data, HashFx, EqualKey, Alloc > &y) |
Global swap function. | |
template<class Val , class HashFx , class EqualKey , class Alloc > | |
void | swap (sparse_hashset< Val, HashFx, EqualKey, Alloc > &x, sparse_hashset< Val, HashFx, EqualKey, Alloc > &y) |
Global swap function. | |
template<class T , uint16 GSz, class TA > | |
void | swap (sparse_table< T, GSz, TA > &x, sparse_table< T, GSz, TA > &y) |
Variables | |
static const uint16 | DEFAULT_SPARSEGROUP_SIZE = 48 |
The default size of a sparse_group. | |
static const uint16 | DEFAULT_GROUP_SIZE = 48 |
The base namespace for everything in the library.
bool operator!= | ( | libc_allocator_with_realloc< T > const & | , |
libc_allocator_with_realloc< T > const & | |||
) | [inline] |
bool operator== | ( | libc_allocator_with_realloc< T > const & | , |
libc_allocator_with_realloc< T > const & | |||
) | [inline] |
void swap | ( | sparse_table< T, GSz, TA > & | x, |
sparse_table< T, GSz, TA > & | y | ||
) | [inline] |
void swap | ( | sparse_group< T, GSz, TA > & | x, |
sparse_group< T, GSz, TA > & | y | ||
) | [inline] |
void swap | ( | sparse_hashtable< V, K, HF, KA, EqK, TA > & | x, |
sparse_hashtable< V, K, HF, KA, EqK, TA > & | y | ||
) | [inline] |
void swap | ( | dense_hashtable< V, K, HF, KA, EqK, TA > & | x, |
dense_hashtable< V, K, HF, KA, EqK, TA > & | y | ||
) | [inline] |
const uint16 ash::DEFAULT_SPARSEGROUP_SIZE = 48 [static] |
The default size of a sparse_group.
The smaller this is, the faster lookup is (because the group bitmap is smaller) and the faster insert is, because there's less to move. On the other hand, there are more groups. Since group::size_type is a short, this number should be of the form 32*x + 16 to avoid waste.
© 2012 | Licensed under | Hosted by | Generated by 1.7.4 |