DefaultHasher Class Reference

#include <hash.h>

Public Types

using ValueType = HashInt
 

Public Member Functions

constexpr MAXON_IMPLICIT DefaultHasher (HashInt start=EMPTY_HASH)
 
constexpr void Combine (HashInt value)
 
void CombineUnordered (HashInt value)
 
constexpr HashInt Finalize () const
 
constexpr operator HashInt () const
 
template<typename... ARGS>
void HashAndCombine (const ARGS &... args)
 

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 constexpr HashInt CombineHashes (HashInt first, R... rest)
 

Static Public Attributes

static constexpr HashInt EMPTY_HASH
 

Private Attributes

HashInt _state
 

Member Typedef Documentation

◆ ValueType

using ValueType = HashInt

Constructor & Destructor Documentation

◆ DefaultHasher()

constexpr MAXON_IMPLICIT DefaultHasher ( HashInt  start = EMPTY_HASH)
constexpr

Member Function Documentation

◆ Mix() [1/2]

static constexpr UInt32 Mix ( UInt32  h)
staticconstexpr

◆ Mix() [2/2]

static constexpr UInt64 Mix ( UInt64  h)
staticconstexpr

◆ SplitMix()

static constexpr HashInt SplitMix ( HashInt  value)
staticconstexpr

◆ Combine()

constexpr void Combine ( HashInt  value)
constexpr

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.

Parameters
[in]valueA hash value.

◆ CombineUnordered()

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.

Parameters
[in]valueA hash value.

◆ Finalize()

constexpr HashInt Finalize ( ) const
constexpr

◆ operator HashInt()

constexpr operator HashInt ( ) const
constexpr

◆ HashAndCombine()

void HashAndCombine ( const ARGS &...  args)

◆ CombineHashes()

static constexpr HashInt CombineHashes ( HashInt  first,
R...  rest 
)
staticconstexpr

Member Data Documentation

◆ EMPTY_HASH

constexpr HashInt EMPTY_HASH
staticconstexpr

◆ _state

HashInt _state
private