MADNESS  0.10.1
Classes | Namespaces | Typedefs | Functions
worldhash.h File Reference

Defines hash functions for use in distributed containers. More...

#include <madness/madness_config.h>
#include <stdint.h>
#include <cstddef>
#include <iterator>
#include <type_traits>
Include dependency graph for worldhash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  madness::Hash< T >
 Hash functor. More...
 

Namespaces

 madness
 File holds all helper structures necessary for the CC_Operator and CC2 class.
 
 madness::detail
 

Typedefs

typedef std::size_t madness::hashT
 The hash value type. More...
 

Functions

void madness::detail::combine_hash (hashT &seed, hashT hash)
 Internal use only. More...
 
template<class T >
void madness::hash_combine (hashT &seed, const T &v)
 Combine hash values. More...
 
template<class T >
hashT madness::hash_range (const T *t, std::size_t n)
 Combine the hash values of a pointer range. More...
 
template<class T , std::size_t n>
hashT madness::hash_range (const T(&t)[n])
 Combine the hash values of a C-style array. More...
 
template<class T >
std::enable_if< std::is_fundamental< T >::value >::type madness::hash_range (hashT &seed, const T *t, std::size_t n)
 Combine the hash values of a pointer range. More...
 
template<class T >
std::enable_if<!std::is_fundamental< T >::value >::type madness::hash_range (hashT &seed, const T *t, std::size_t n)
 Combine the hash values of a pointer range. More...
 
template<class T , std::size_t n>
void madness::hash_range (hashT &seed, const T(&t)[n])
 Combine the hash values of a C-style array. More...
 
template<class It >
void madness::hash_range (hashT &seed, It first, It last)
 
template<class It >
hashT madness::hash_range (It first, It last)
 Combine the hash values of an iterator range. More...
 
template<typename T >
hashT madness::hash_value (const std::basic_string< T > &t)
 Hash a std::basic_string. More...
 
template<typename T , typename R >
hashT madness::hash_value (const std::pair< T, R > &t)
 Hash a std::pair. More...
 
template<typename T >
auto madness::hash_value (const T &t)
 Hash a class object. More...
 
template<typename T >
hashT madness::hash_value (const T *t)
 Hash a pointer address. More...
 
template<class T >
std::enable_if< std::is_fundamental< T >::value &&((sizeof(T)%sizeof(uint32_t))==0), hashT >::type madness::hash_value (const T t)
 Hash a single fundamental object. More...
 
template<class T >
std::enable_if< std::is_fundamental< T >::value &&((sizeof(T)%sizeof(uint32_t)) !=0), hashT >::type madness::hash_value (const T t)
 Hash a single fundamental object. More...
 
uint32_t hashlittle (const void *key, size_t length, uint32_t initval)
 
uint32_t hashword (const uint32_t *k, size_t length, uint32_t initval)
 

Detailed Description

Defines hash functions for use in distributed containers.