#ifndef HASHFUNCS_H
#define HASHFUNCS_H
#include "core/math/aabb.h"
#include "core/math/basis.h"
#include "core/math/color.h"
#include "core/math/math_defs.h"
#include "core/math/math_funcs.h"
#include "core/math/plane.h"
#include "core/math/projection.h"
#include "core/math/quaternion.h"
#include "core/math/rect2.h"
#include "core/math/rect2i.h"
#include "core/math/transform_2d.h"
#include "core/math/transform_3d.h"
#include "core/math/vector2.h"
#include "core/math/vector2i.h"
#include "core/math/vector3.h"
#include "core/math/vector3i.h"
#include "core/math/vector4.h"
#include "core/math/vector4i.h"
#include "core/object/object_id.h"
#include "core/string/node_path.h"
#include "core/string/string_name.h"
#include "core/string/ustring.h"
#include "core/templates/rid.h"
#include "core/typedefs.h"
static _FORCE_INLINE_ uint32_t hash_djb2(const char *p_cstr) { … }
static _FORCE_INLINE_ uint32_t hash_djb2_buffer(const uint8_t *p_buff, int p_len, uint32_t p_prev = 5381) { … }
static _FORCE_INLINE_ uint32_t hash_djb2_one_32(uint32_t p_in, uint32_t p_prev = 5381) { … }
static _FORCE_INLINE_ uint32_t hash_one_uint64(const uint64_t p_int) { … }
#define HASH_MURMUR3_SEED …
static _FORCE_INLINE_ uint32_t hash_murmur3_one_32(uint32_t p_in, uint32_t p_seed = HASH_MURMUR3_SEED) { … }
static _FORCE_INLINE_ uint32_t hash_murmur3_one_float(float p_in, uint32_t p_seed = HASH_MURMUR3_SEED) { … }
static _FORCE_INLINE_ uint32_t hash_murmur3_one_64(uint64_t p_in, uint32_t p_seed = HASH_MURMUR3_SEED) { … }
static _FORCE_INLINE_ uint32_t hash_murmur3_one_double(double p_in, uint32_t p_seed = HASH_MURMUR3_SEED) { … }
static _FORCE_INLINE_ uint32_t hash_murmur3_one_real(real_t p_in, uint32_t p_seed = HASH_MURMUR3_SEED) { … }
static _FORCE_INLINE_ uint32_t hash_rotl32(uint32_t x, int8_t r) { … }
static _FORCE_INLINE_ uint32_t hash_fmix32(uint32_t h) { … }
static _FORCE_INLINE_ uint32_t hash_murmur3_buffer(const void *key, int length, const uint32_t seed = HASH_MURMUR3_SEED) { … }
static _FORCE_INLINE_ uint32_t hash_djb2_one_float(double p_in, uint32_t p_prev = 5381) { … }
template <typename T>
static _FORCE_INLINE_ uint32_t hash_make_uint32_t(T p_in) { … }
static _FORCE_INLINE_ uint64_t hash_djb2_one_float_64(double p_in, uint64_t p_prev = 5381) { … }
static _FORCE_INLINE_ uint64_t hash_djb2_one_64(uint64_t p_in, uint64_t p_prev = 5381) { … }
template <typename T>
static _FORCE_INLINE_ uint64_t hash_make_uint64_t(T p_in) { … }
template <typename T>
class Ref;
struct HashMapHasherDefault { … };
template <typename T>
struct HashableHasher { … };
template <typename T>
struct HashMapComparatorDefault { … };
template <>
struct HashMapComparatorDefault<float> { … };
template <>
struct HashMapComparatorDefault<double> { … };
template <>
struct HashMapComparatorDefault<Color> { … };
template <>
struct HashMapComparatorDefault<Vector2> { … };
template <>
struct HashMapComparatorDefault<Vector3> { … };
template <>
struct HashMapComparatorDefault<Vector4> { … };
template <>
struct HashMapComparatorDefault<Rect2> { … };
template <>
struct HashMapComparatorDefault<AABB> { … };
template <>
struct HashMapComparatorDefault<Plane> { … };
template <>
struct HashMapComparatorDefault<Transform2D> { … };
template <>
struct HashMapComparatorDefault<Basis> { … };
template <>
struct HashMapComparatorDefault<Transform3D> { … };
template <>
struct HashMapComparatorDefault<Projection> { … };
template <>
struct HashMapComparatorDefault<Quaternion> { … };
constexpr uint32_t HASH_TABLE_SIZE_MAX = …;
inline constexpr uint32_t hash_table_size_primes[HASH_TABLE_SIZE_MAX] = …;
inline constexpr uint64_t hash_table_size_primes_inv[HASH_TABLE_SIZE_MAX] = …;
static _FORCE_INLINE_ uint32_t fastmod(const uint32_t n, const uint64_t c, const uint32_t d) { … }
#endif