|
| template<bytelike_range RANGE> |
| constexpr uint32_t | ghassanpl::crc32 (RANGE &&bytes) |
| | Calculates a CRC32 for a range of bytelikes.
|
| template<bytelike... BYTES> |
| constexpr uint32_t | ghassanpl::crc32 (BYTES... bytes) |
| | Calculates a CRC32 for a variadic number of bytelikes.
|
| template<bytelike_range RANGE> |
| constexpr uint64_t | ghassanpl::crc64 (RANGE &&bytes) |
| | Calculates a CRC4 for a range of bytelikes.
|
| template<bytelike... BYTES> |
| constexpr uint64_t | ghassanpl::crc64 (BYTES... bytes) |
| | Calculates a CRC4 for a variadic number of bytelikes.
|
| template<bytelike_range RANGE> |
| constexpr uint64_t | ghassanpl::fnv64 (RANGE &&bytes) |
| | Calculates a FNV Hash for a range of bytes.
|
| template<bytelike... BYTES> |
| constexpr uint64_t | ghassanpl::fnv64 (BYTES... bytes) |
| | Calculates a FNV Hash for a variadic number of bytes.
|
| constexpr void | ghassanpl::fold_in_hash64 (uint64_t &hash1, uint64_t hash2) noexcept |
| | Combines an existing hash with a new hash value.
|
| template<typename T, typename HASHER = std::hash<std::remove_cvref_t<T>>> |
| constexpr void | ghassanpl::hash64_combine_to (uint64_t &seed, T &&v, HASHER &&hasher=HASHER{}) |
| | Combines an existing hash value (seed) with the hash of value v.
|
| template<template< typename > typename HASHER = std::hash, typename FIRST, typename... T> |
| constexpr uint64_t | ghassanpl::hash64 (FIRST const &first, T &&... values) |
| | Performs a hash of multiple values.
|
| template<typename It, typename HASHER = std::hash<std::iter_value_t<It>>> |
| constexpr void | ghassanpl::fold_in_hash64_range (uint64_t &seed, It first, It last, HASHER const &hasher={}) |
| | Combines an existing hash value (seed) with the hash of a range of values.
|
| template<typename It, typename HASHER = std::hash<std::iter_value_t<It>>> |
| constexpr uint64_t | ghassanpl::hash64_range (It first, It last, HASHER &&hasher={}) |
| | Hashes a range of values.
|
| template<std::ranges::range T, typename HASHER = std::hash<std::ranges::range_value_t<T>>> |
| constexpr uint64_t | ghassanpl::hash64_range (T range, HASHER &&hasher={}) |
| | Hashes a range of values.
|
Hashing functions, mostly constexpr when possible.