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

namespace  madness
 Namespace for all elements and tools of MADNESS.
 
namespace  madness::detail
 

Typedefs

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

Functions

void madness::detail::combine_hash (hashT &seed, hashT hash)
 Internal use only.
 
template<class T >
void madness::hash_combine (hashT &seed, const T &v)
 Combine hash values.
 
template<class T >
hashT madness::hash_range (const T *t, std::size_t n)
 Combine the hash values of a pointer range.
 
template<class T , std::size_t n>
hashT madness::hash_range (const T(&t)[n])
 Combine the hash values of a C-style array.
 
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.
 
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.
 
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.
 
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.
 
template<typename T >
hashT madness::hash_value (const std::basic_string< T > &t)
 Hash a std::basic_string.
 
template<typename T , typename R >
hashT madness::hash_value (const std::pair< T, R > &t)
 Hash a std::pair.
 
template<typename T >
auto madness::hash_value (const T &t)
 Hash a class object.
 
template<typename T >
hashT madness::hash_value (const T *t)
 Hash a pointer address.
 
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.
 
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.
 
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.