Go to the SVN repository for this file.
52 #ifndef NAMESPACE_FOR_HASH_FUNCTIONS 53 #define NAMESPACE_FOR_HASH_FUNCTIONS util 58 #if defined(FARMHASH_UINT128_T_DEFINED) 59 #if defined(__clang__) 60 #if !defined(uint128_t) 61 #define uint128_t __uint128_t 68 return static_cast<uint64_t>(x >> 64);
86 size_t Hash(
const char* s,
size_t len);
136 const uint64_tkMul = 0x9ddfea08eb382d69ULL;
160 const uint64_tkMul = 0x9ddfea08eb382d69ULL;
174 const uint64_tkMul = 0x9ddfea08eb382d69ULL;
183 #ifndef FARMHASH_NO_CXX_STRING 193 template<
typenameStr>
194 inline size_t Hash(
constStr& s) {
195 assert(
sizeof(s[0]) == 1);
196 return Hash(s.data(), s.length());
202 template<
typenameStr>
204 assert(
sizeof(s[0]) == 1);
205 return Hash32(s.data(), s.length());
212 template<
typenameStr>
214 assert(
sizeof(s[0]) == 1);
222 template<
typenameStr>
224 assert(
sizeof(s[0]) == 1);
225 return Hash64(s.data(), s.length());
232 template<
typenameStr>
234 assert(
sizeof(s[0]) == 1);
242 template<
typenameStr>
244 assert(
sizeof(s[0]) == 1);
251 template<
typenameStr>
253 assert(
sizeof(s[0]) == 1);
254 return Hash128(s.data(), s.length());
261 template<
typenameStr>
263 assert(
sizeof(s[0]) == 1);
270 template<
typenameStr>
272 assert(
sizeof(s[0]) == 1);
278 template<
typenameStr>
280 assert(
sizeof(s[0]) == 1);
285 template<
typenameStr>
287 assert(
sizeof(s[0]) == 1);
296 #if defined(__BIG_ENDIAN__) 297 #if !defined(FARMHASH_BIG_ENDIAN) 298 #define FARMHASH_BIG_ENDIAN 300 #elif defined(__LITTLE_ENDIAN__) 302 #elif defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER == __ORDER_LITTLE_ENDIAN__) 304 #elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER == __ORDER_BIG_ENDIAN__) 305 #if !defined(FARMHASH_BIG_ENDIAN) 306 #define FARMHASH_BIG_ENDIAN 308 #elif defined(__linux__) || defined(__CYGWIN__) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ ) 310 #if BYTE_ORDER == BIG_ENDIAN 311 #if !defined(FARMHASH_BIG_ENDIAN) 312 #define FARMHASH_BIG_ENDIAN 315 #elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__s390x__) 316 #include <sys/endian.h> 317 #if BYTE_ORDER == BIG_ENDIAN 318 #if !defined(FARMHASH_BIG_ENDIAN) 319 #define FARMHASH_BIG_ENDIAN 322 #elif defined(_WIN32) 325 #error "Unable to determine endianness!"uint64 Uint128High64(const uint128 &x)
uint64 Uint128Low64(const uint128 &x)
uint64 Hash128to64(const uint128 &x)
#define NAMESPACE_FOR_HASH_FUNCTIONS
uint32_t Hash32(const Str &s)
uint128_t Fingerprint128(const Str &s)
uint64_t Fingerprint64(const Str &s)
size_t Hash(const Str &s)
uint64_t Hash64WithSeed(const Str &s, uint64_t seed)
uint32_t Hash32WithSeed(const Str &s, uint32_t seed)
uint128_t Hash128WithSeed(const Str &s, uint128_t seed)
uint64_t Hash64WithSeeds(const Str &s, uint64_t seed0, uint64_t seed1)
uint128_t Uint128(uint64_t lo, uint64_t hi)
uint32_t Fingerprint32(const Str &s)
uint64_t Fingerprint(uint64_t x)
uint128_t Hash128(const Str &s)
std::pair< uint64_t, uint64_t > uint128_t
uint64_t Hash64(const Str &s)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4