#include <hash.h>
Public Types | |
using | ValueType = HashInt |
Public Member Functions | |
MAXON_IMPLICIT | DefaultHasher (HashInt start=EMPTY_HASH) |
void | Combine (HashInt value) |
void | CombineUnordered (HashInt value) |
HashInt | Finalize () const |
operator HashInt () const | |
Static Public Member Functions | |
static constexpr UInt32 | Mix (UInt32 h) |
static constexpr UInt64 | Mix (UInt64 h) |
static constexpr HashInt | SplitMix (HashInt value) |
template<typename... R> | |
static HashInt | CombineHashes (HashInt first, R... rest) |
Static Public Attributes | |
static constexpr HashInt | EMPTY_HASH |
Static Private Member Functions | |
static void | CombineHashesImpl (DefaultHasher &hash) |
template<typename... R> | |
static void | CombineHashesImpl (DefaultHasher &hash, HashInt x, R... rest) |
Private Attributes | |
HashInt | _state |
MAXON_IMPLICIT DefaultHasher | ( | HashInt | start = EMPTY_HASH | ) |
void Combine | ( | HashInt | value | ) |
Combines the given value with the current state in an ordered way, which means that the effect of multiple calls to Combine does depend on the order of those calls. You can use this function to compute a hash value of a sequence of HashInts when the sequence order is important.
[in] | value | A hash value. |
void CombineUnordered | ( | HashInt | value | ) |
Combines the given value with the current state in an unordered way, which means that the effect of multiple calls to CombineUnordered doesn't depend on the order of those calls. You can use this function to compute a hash value of a sequence of HashInts when the sequence order shall be irrelevant.
[in] | value | A hash value. |
HashInt Finalize | ( | ) | const |
operator HashInt | ( | ) | const |
|
staticprivate |
|
staticprivate |
|
staticconstexpr |
|
private |