Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ash Namespace Reference

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_2DPointXY
 match the naming style for MortonXY and PCoordXY
typedef ash::Point< DIM_3DPointXYZ
 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 >
interleave2 (U val)
 2D bit interleave.
template<typename U >
uninterleave2 (U val)
 2D bit un-interleave.
template<typename U >
interleave3 (U val)
 3D bit interleave.
template<typename 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

Detailed Description

The base namespace for everything in the library.


Function Documentation

template<class T >
bool operator!= ( libc_allocator_with_realloc< T > const &  ,
libc_allocator_with_realloc< T > const &   
) [inline]
template<class T >
bool operator== ( libc_allocator_with_realloc< T > const &  ,
libc_allocator_with_realloc< T > const &   
) [inline]
template<class T , uint16 GSz, class TA >
void swap ( sparse_table< T, GSz, TA > &  x,
sparse_table< T, GSz, TA > &  y 
) [inline]
template<class T , uint16 GSz, class TA >
void swap ( sparse_group< T, GSz, TA > &  x,
sparse_group< T, GSz, TA > &  y 
) [inline]
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 
) [inline]
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 
) [inline]

Variable Documentation

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   AshTL
Licensed under  AGPLv3
Hosted by  Get AshTL at SourceForge.net. Fast, secure and Free Open Source software downloads
Generated by  doxygen 1.7.4