hudson Namespace Reference


Classes

class  BucketPQ
class  BucketDoublePQ
class  count_iterator
struct  FHS_Stats
struct  KeyValue
struct  KeyValue< Key, void >
class  FastHashBase
class  FastHashSet
 This is a specialization of FastHashBase that turns it into a set. More...
class  FastHashMap
 This is a specialization of FastHashBase that turns it into a map. More...
class  FixedVector
struct  FrontQueue
class  FrontStack
struct  OptionSet
struct  CommandLine
struct  HashWord
struct  HashPointer
struct  hash_by_call
struct  hash_by_call< C * >
struct  hash_by_cast
class  IntrusiveList
class  IntrusivePtr
struct  option
class  OrderedHashSet
class  queue_as_stack
class  QueueFromStack
class  SmallList
struct  SmallMemoryItem
class  StoredPriorityQueue
struct  Bucket
struct  Bucket< void >
struct  PayloadBucket
struct  PayloadBucket< NonVoid, void >

Namespaces

namespace  details
 Details of the implementation. Nothing to see here.
namespace  SmallMemoryPool
namespace  SMP_details

Functions

template<class C, size_t d>
void sort (boost::array< C, d > &elems)
template<class C, size_t d>
void swapInPlace (boost::array< C, d > &elems, size_t i)
template<class C, size_t d>
void multiSwapInPlace (boost::array< C, d > &elems, size_t i)
template<class C, size_t d, class hasher>
size_t hashArray (const boost::array< C, d > &elems, const hasher &h)
void error (const char *filename, unsigned lineno, const char *msgformat,...)
size_t hashWord (size_t a)
template<class T>
size_t hashPointer (const T *p)
size_t hashWords (size_t a, size_t b)
size_t hashWords (size_t a, size_t b, size_t c)
size_t hashWords (size_t a, size_t b, size_t c, size_t d)
template<class iterator, class hasher>
size_t hashItems (const iterator &begin, const iterator &end, const hasher &h)
template<class T>
__gnu_cxx::identity< T > form_identity (const T &)
template<class T>
__gnu_cxx::hash< T > form_hash (const T &)
double read_wall_time ()

Variables

FHS_Stats global_stats
FHS_Stats global_stats
const int IntrusiveListDefaultOut = -1


Detailed Description

A set of useful hash functions, trawled from Bob Jenkins, Paul Hsieh, and Thomas Wang.

The implementation automatically chooses whether to be 32- or 64-bit, based on how big size_t is. A good optimizer will eliminate the extra calls that this entails. GCC 4.2 is starting to be reasonable and 4.3 promises to actually be pretty good in this respect; with older versions of gcc, expect to pay a penalty over inlining this all.


Function Documentation

void hudson::error const char *  filename,
unsigned  lineno,
const char *  msgformat,
  ...
 

template<class T>
__gnu_cxx::hash<T> hudson::form_hash const T &   ) 
 

Form an instance of the standard hash function for something of type T.

template<class T>
__gnu_cxx::identity<T> hudson::form_identity const T &   ) 
 

Form an instance of the identity function for something of type T.

template<class C, size_t d, class hasher>
size_t hudson::hashArray const boost::array< C, d > &  elems,
const hasher &  h
 

Choose the proper hash function out of lookup3.h.

template<class iterator, class hasher>
size_t hudson::hashItems const iterator &  begin,
const iterator &  end,
const hasher &  h
 

template<class T>
size_t hudson::hashPointer const T *  p  ) 
 

size_t hudson::hashWord size_t  a  )  [inline]
 

size_t hudson::hashWords size_t  a,
size_t  b,
size_t  c,
size_t  d
[inline]
 

size_t hudson::hashWords size_t  a,
size_t  b,
size_t  c
[inline]
 

size_t hudson::hashWords size_t  a,
size_t  b
[inline]
 

template<class C, size_t d>
void hudson::multiSwapInPlace boost::array< C, d > &  elems,
size_t  i
 

double hudson::read_wall_time  ) 
 

For use in getting approximate timings.

template<class C, size_t d>
void hudson::sort boost::array< C, d > &  elems  ) 
 

Sort a small array.

template<class C, size_t d>
void hudson::swapInPlace boost::array< C, d > &  elems,
size_t  i
 


Variable Documentation

FHS_Stats hudson::global_stats
 

FHS_Stats hudson::global_stats
 

const int hudson::IntrusiveListDefaultOut = -1
 


Generated on Thu Mar 27 19:04:16 2008 by  doxygen 1.4.6