Open CASCADE Technology 7.8.2.dev
Standard_HashUtils.hxx File Reference
#include <Standard_Macro.hxx>
#include <cstdint>
#include <cstddef>
#include <functional>
#include <type_traits>
#include <Standard_HashUtils.lxx>

Namespaces

namespace  opencascade
 Namespace opencascade is intended for low-level template classes and functions.
 
namespace  opencascade::MurmurHash
 Implementation of Murmur hash with autodetect of sizeof(size_t).
 
namespace  opencascade::FNVHash
 Implementation of FNV-1a with autodetect of sizeof(size_t). This function should work on unsigned char, otherwise it does not correctly implement the FNV-1a algorithm. The existing behaviour is retained for backwards compatibility.
 

Functions

uint32_t opencascade::MurmurHash::MurmurHash2A (const void *theKey, int theLen, uint32_t theSeed)
 
uint64_t opencascade::MurmurHash::MurmurHash64A (const void *theKey, int theLen, uint64_t theSeed)
 
template<typename T1 , typename T = size_t>
std::enable_if< sizeof(T)==8, uint64_t >::type opencascade::MurmurHash::hash_combine (const T1 &theValue, const int theLen=sizeof(T1), const T theSeed=0xA329F1D3A586ULL)
 
template<typename T1 , typename T = size_t>
std::enable_if< sizeof(T)!=8, T >::type opencascade::MurmurHash::hash_combine (const T1 &theValue, const int theLen=sizeof(T1), const T theSeed=0xc70f6907U)
 
template<typename T = size_t>
constexpr T opencascade::MurmurHash::optimalSeed ()
 
uint32_t opencascade::FNVHash::FNVHash1A (const void *theKey, int theLen, uint32_t theSeed)
 
uint64_t opencascade::FNVHash::FNVHash64A (const void *theKey, int theLen, uint64_t theSeed)
 
template<typename T = size_t>
constexpr T opencascade::FNVHash::optimalSeed ()
 
template<typename T1 , typename T = size_t>
opencascade::hash (const T1 theValue) noexcept
 
template<typename T1 , typename T = size_t>
opencascade::hashBytes (const T1 *theKey, int theLen)
 
template<typename T1 , typename T = size_t>
opencascade::hash_combine (const T1 theValue, const int theLen, const T theSeed)