Contains functions used in the classic 64-bit xxHash algorithm.
- Note
- XXH3 provides competitive speed for both 32-bit and 64-bit systems, and offers true 64/128 bit hash results. It provides better speed for systems with vector processing capabilities.
◆ XXH64_state_t
The opaque state struct for the XXH64 streaming API.
- See also
- XXH64_state_s for details.
◆ XXH64()
Calculates the 64-bit hash of input
using xxHash64.
This function usually runs faster on 64-bit systems, but slower on 32-bit systems (see benchmark).
- Parameters
-
input | The block of data to be hashed, at least length bytes in size. |
length | The length of input , in bytes. |
seed | The 64-bit seed to alter the hash's output predictably. |
- Precondition
- The memory between
input
and input
+ length
must be valid, readable, contiguous memory. However, if length
is 0
, input
may be NULL
. In C++, this also must be TriviallyCopyable.
- Returns
- The calculated 64-bit hash.
- See also
- XXH32(), XXH3_64bits_withSeed(), XXH3_128bits_withSeed(), XXH128(): Direct equivalents for the other variants of xxHash.
-
XXH64_createState(), XXH64_update(), XXH64_digest(): Streaming version.
◆ XXH64_createState()
◆ XXH64_freeState()
◆ XXH64_copyState()
Copies one XXH64_state_t to another.
- Parameters
-
dst_state | The state to copy to. |
src_state | The state to copy from. |
- Precondition
dst_state
and src_state
must not be NULL
and must not overlap.
◆ XXH64_reset()
Resets an XXH64_state_t to begin a new hash.
This function resets and seeds a state. Call it before XXH64_update().
- Parameters
-
statePtr | The state struct to reset. |
seed | The 64-bit seed to alter the hash result predictably. |
- Precondition
statePtr
must not be NULL
.
- Returns
- XXH_OK on success, XXH_ERROR on failure.
◆ XXH64_update()
Consumes a block of input
to an XXH64_state_t.
Call this to incrementally consume blocks of data.
- Parameters
-
statePtr | The state struct to update. |
input | The block of data to be hashed, at least length bytes in size. |
length | The length of input , in bytes. |
- Precondition
statePtr
must not be NULL
.
-
The memory between
input
and input
+ length
must be valid, readable, contiguous memory. However, if length
is 0
, input
may be NULL
. In C++, this also must be TriviallyCopyable.
- Returns
- XXH_OK on success, XXH_ERROR on failure.
◆ XXH64_digest()
Returns the calculated hash value from an XXH64_state_t.
- Note
- Calling XXH64_digest() will not affect
statePtr
, so you can update, digest, and update again.
- Parameters
-
statePtr | The state struct to calculate the hash from. |
- Precondition
statePtr
must not be NULL
.
- Returns
- The calculated xxHash64 value from that state.
◆ XXH64_canonicalFromHash()
◆ XXH64_hashFromCanonical()