HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
hash.h File Reference
#include <cassert>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <unordered_map>
#include <utility>
#include <vector>
#include <OpenImageIO/span.h>
#include <OpenImageIO/export.h>
#include <OpenImageIO/oiioversion.h>
#include <OpenImageIO/string_view.h>
+ Include dependency graph for hash.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SHA1
 
struct  SHA1::Hash
 Type for storing the raw bits of the hash. More...
 

Namespaces

 fasthash
 
 xxhash
 
 bjhash
 
 murmur
 
 farmhash
 

Typedefs

typedef std::pair< uint64_t,
uint64_t > 
farmhash::uint128_t
 

Functions

uint64_t fasthash::fasthash64 (const void *buf, size_t len, uint64_t seed=1771)
 
uint64_t fasthash::fasthash64 (const std::initializer_list< uint64_t > buf)
 
unsigned int OIIO_API xxhash::XXH32 (const void *input, size_t length, unsigned seed=1771)
 
unsigned long long OIIO_API xxhash::XXH64 (const void *input, size_t length, unsigned long long seed=1771)
 
size_t xxhash::xxhash (const void *input, size_t length, size_t seed=1771)
 
template<typename Str >
size_t xxhash::xxhash (const Str &s, size_t seed=1771)
 
OIIO_FORCEINLINE
OIIO_HOSTDEVICE uint32_t 
bjhash::rotl32 (uint32_t x, int k)
 
OIIO_FORCEINLINE
OIIO_HOSTDEVICE uint64_t 
bjhash::rotl64 (uint64_t x, int k)
 
OIIO_HOSTDEVICE void bjhash::bjmix (uint32_t &a, uint32_t &b, uint32_t &c)
 
OIIO_HOSTDEVICE uint32_t bjhash::bjfinal (uint32_t a, uint32_t b, uint32_t c=0xdeadbeef)
 
uint64_t bjhash::bjfinal64 (uint64_t h0, uint64_t h1, uint64_t h2, uint64_t h3)
 
uint32_t OIIO_API bjhash::hashlittle (const void *key, size_t length, uint32_t seed=1771)
 
uint32_t OIIO_API bjhash::hashword (const uint32_t *key, size_t nwords, uint32_t seed=1771)
 
size_t bjhash::strhash (const char *s)
 
size_t bjhash::strhash (string_view s)
 
uint32_t murmur::fmix (uint32_t h)
 
uint64_t murmur::fmix (uint64_t k)
 
OIIO_HOSTDEVICE constexpr uint64_t farmhash::Uint128Low64 (const uint128_t x)
 
OIIO_HOSTDEVICE constexpr uint64_t farmhash::Uint128High64 (const uint128_t x)
 
OIIO_HOSTDEVICE
OIIO_CONSTEXPR14 uint128_t 
farmhash::Uint128 (uint64_t lo, uint64_t hi)
 
OIIO_HOSTDEVICE
OIIO_CONSTEXPR14 void 
farmhash::CopyUint128 (uint128_t &dst, const uint128_t src)
 
size_t OIIO_API farmhash::Hash (const char *s, size_t len)
 
uint32_t OIIO_API farmhash::Hash32 (const char *s, size_t len)
 
uint32_t OIIO_API farmhash::Hash32WithSeed (const char *s, size_t len, uint32_t seed)
 
uint64_t OIIO_API farmhash::Hash64 (const char *s, size_t len)
 
uint64_t OIIO_API farmhash::Hash64WithSeed (const char *s, size_t len, uint64_t seed)
 
uint64_t OIIO_API farmhash::Hash64WithSeeds (const char *s, size_t len, uint64_t seed0, uint64_t seed1)
 
uint128_t OIIO_API farmhash::Hash128 (const char *s, size_t len)
 
uint128_t OIIO_API farmhash::Hash128WithSeed (const char *s, size_t len, uint128_t seed)
 
OIIO_HOSTDEVICE
OIIO_CONSTEXPR14 uint64_t 
farmhash::Hash128to64 (uint128_t x)
 
uint32_t OIIO_API farmhash::Fingerprint32 (const char *s, size_t len)
 
uint64_t OIIO_API farmhash::Fingerprint64 (const char *s, size_t len)
 
uint128_t OIIO_API farmhash::Fingerprint128 (const char *s, size_t len)
 
OIIO_HOSTDEVICE
OIIO_CONSTEXPR14 uint64_t 
farmhash::Fingerprint (uint128_t x)
 
OIIO_HOSTDEVICE
OIIO_CONSTEXPR14 uint64_t 
farmhash::Fingerprint (uint64_t x)
 
template<typename Str >
size_t farmhash::Hash (const Str &s)
 
template<typename Str >
uint32_t farmhash::Hash32 (const Str &s)
 
template<typename Str >
uint32_t farmhash::Hash32WithSeed (const Str &s, uint32_t seed)
 
template<typename Str >
uint64_t farmhash::Hash64 (const Str &s)
 
template<typename Str >
uint64_t farmhash::Hash64WithSeed (const Str &s, uint64_t seed)
 
template<typename Str >
uint64_t farmhash::Hash64WithSeeds (const Str &s, uint64_t seed0, uint64_t seed1)
 
template<typename Str >
uint128_t farmhash::Hash128 (const Str &s)
 
template<typename Str >
uint128_t farmhash::Hash128WithSeed (const Str &s, uint128_t seed)
 
template<typename Str >
uint32_t farmhash::Fingerprint32 (const Str &s)
 
template<typename Str >
uint64_t farmhash::Fingerprint64 (const Str &s)
 
template<typename Str >
uint128_t farmhash::Fingerprint128 (const Str &s)
 

Detailed Description

Wrapper so that hash_map and hash_set mean what we want regardless of the compiler.

Definition in file hash.h.