WPILibC++ 2025.2.1
|
The intermediate state used during hashing. More...
#include <wpi/Hashing.h>
Public Member Functions | |
void | mix (const char *s) |
Mix in a 64-byte buffer of data. | |
uint64_t | finalize (size_t length) |
Compute the final 64-bit hash code value based on the current state and the length of bytes hashed. | |
Static Public Member Functions | |
static hash_state | create (const char *s, uint64_t seed) |
Create a new hash_state structure and initialize it based on the seed and the first 64-byte chunk. | |
static void | mix_32_bytes (const char *s, uint64_t &a, uint64_t &b) |
Mix 32-bytes from the input sequence into the 16-bytes of 'a' and 'b', including whatever is already in 'a' and 'b'. | |
Public Attributes | |
uint64_t | h0 = 0 |
uint64_t | h1 = 0 |
uint64_t | h2 = 0 |
uint64_t | h3 = 0 |
uint64_t | h4 = 0 |
uint64_t | h5 = 0 |
uint64_t | h6 = 0 |
The intermediate state used during hashing.
Currently, the algorithm for computing hash codes is based on CityHash and keeps 56 bytes of arbitrary state.
|
inlinestatic |
Create a new hash_state structure and initialize it based on the seed and the first 64-byte chunk.
This effectively performs the initial mix.
|
inline |
Compute the final 64-bit hash code value based on the current state and the length of bytes hashed.
|
inline |
Mix in a 64-byte buffer of data.
We mix all 64 bytes even when the chunk length is smaller, but we record the actual length.
|
inlinestatic |
Mix 32-bytes from the input sequence into the 16-bytes of 'a' and 'b', including whatever is already in 'a' and 'b'.
uint64_t wpi::hashing::detail::hash_state::h0 = 0 |
uint64_t wpi::hashing::detail::hash_state::h1 = 0 |
uint64_t wpi::hashing::detail::hash_state::h2 = 0 |
uint64_t wpi::hashing::detail::hash_state::h3 = 0 |
uint64_t wpi::hashing::detail::hash_state::h4 = 0 |
uint64_t wpi::hashing::detail::hash_state::h5 = 0 |
uint64_t wpi::hashing::detail::hash_state::h6 = 0 |