8#ifndef INCLUDED_BDLB_HASHUTIL
9#define INCLUDED_BDLB_HASHUTIL
769#include <bdlscm_version.h>
796 static unsigned int hash0(
char key,
int modulus);
797 static unsigned int hash0(
signed char key,
int modulus);
798 static unsigned int hash0(
unsigned char key,
int modulus);
799 static unsigned int hash0(
short key,
int modulus);
800 static unsigned int hash0(
unsigned short key,
int modulus);
801 static unsigned int hash0(
int key,
int modulus);
802 static unsigned int hash0(
unsigned int key,
int modulus);
803 static unsigned int hash0(
long key,
int modulus);
804 static unsigned int hash0(
unsigned long key,
int modulus);
807 static unsigned int hash0(
float key,
int modulus);
808 static unsigned int hash0(
double key,
int modulus);
809 static unsigned int hash0(
const void *key,
int modulus);
819 static unsigned int hash0(
const char *
string,
int modulus);
831 static unsigned int hash0(
const char *
string,
848 static unsigned int hash1(
const char *data,
int length);
849 static unsigned int hash2(
const char *data,
int length);
859 static unsigned int hash1(
char key);
860 static unsigned int hash1(
signed char key);
861 static unsigned int hash1(
unsigned char key);
862 static unsigned int hash1(
short key);
863 static unsigned int hash1(
unsigned short key);
865 static unsigned int hash1(
unsigned int key);
866 static unsigned int hash1(
long key);
867 static unsigned int hash1(
unsigned long key);
870 static unsigned int hash1(
float key);
871 static unsigned int hash1(
double key);
872 static unsigned int hash1(
const void *key);
882 static unsigned int hash2(
char key);
883 static unsigned int hash2(
signed char key);
884 static unsigned int hash2(
unsigned char key);
885 static unsigned int hash2(
short key);
886 static unsigned int hash2(
unsigned short key);
888 static unsigned int hash2(
unsigned int key);
889 static unsigned int hash2(
long key);
890 static unsigned int hash2(
unsigned long key);
893 static unsigned int hash2(
float key);
894 static unsigned int hash2(
double key);
895 static unsigned int hash2(
const void *key);
912 if (4 ==
sizeof(
int)) {
913 return static_cast<unsigned int>(key)
914 %
static_cast<unsigned int>(modulus);
917 return (
static_cast<unsigned int>(key) & 0xFFFFFFFF)
918 %
static_cast<unsigned int>(modulus);
926 return ((
static_cast<unsigned int>((key >> 32) & 0xFFFFFFFF)
927 %
static_cast<unsigned int>(modulus))
928 ^
static_cast<unsigned int>(key & 0xFFFFFFFF))
929 %
static_cast<unsigned int>(modulus);
937 return HashUtil::hash0(
static_cast<int>(
static_cast<unsigned char>(key)),
946 return HashUtil::hash0(
static_cast<int>(
static_cast<unsigned char>(key)),
963 return HashUtil::hash0(
static_cast<int>(
static_cast<unsigned short>(key)),
988 if (4 ==
sizeof(
long)) {
990 static_cast<int>(
static_cast<unsigned long>(key)),
1005 if (4 ==
sizeof(
unsigned long)) {
1044 if (4 ==
sizeof(
void *)) {
1045 const int *v =
reinterpret_cast<const int *
>(&key);
1050 static_cast<const void *
>(&key));
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlb_algorithmworkaroundutil.h:74
Definition bdlb_hashutil.h:784
static unsigned int hash2(unsigned int key)
static unsigned int hash1(float key)
static unsigned int hash0(char key, int modulus)
Definition bdlb_hashutil.h:933
static unsigned int hash2(signed char key)
static unsigned int hash2(float key)
static unsigned int hash0(const char *string, int modulus)
static unsigned int hash2(unsigned short key)
static unsigned int hash0(const char *string, int stringLength, int modulus)
static unsigned int hash1(const void *key)
static unsigned int hash1(unsigned short key)
static unsigned int hash1(bsls::Types::Uint64 key)
static unsigned int hash2(unsigned char key)
static unsigned int hash2(const void *key)
static unsigned int hash2(int key)
static unsigned int hash1(double key)
static unsigned int hash1(signed char key)
static unsigned int hash2(char key)
static unsigned int hash2(bsls::Types::Int64 key)
static unsigned int hash2(bsls::Types::Uint64 key)
static unsigned int hash1(int key)
static unsigned int hash1(unsigned char key)
static unsigned int hash1(unsigned int key)
static unsigned int hash1(char key)
static unsigned int hash2(double key)
static unsigned int hash1(short key)
static unsigned int hash1(unsigned long key)
static unsigned int hash2(const char *data, int length)
static unsigned int hash1(const char *data, int length)
static unsigned int hash2(short key)
static unsigned int hash2(unsigned long key)
static unsigned int hash1(bsls::Types::Int64 key)
static unsigned int hash1(long key)
static unsigned int hash2(long key)
unsigned long long Uint64
Definition bsls_types.h:139
long long Int64
Definition bsls_types.h:134