Open Search
    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