From 46fb95292612df837df12bc4093addd4807d606e Mon Sep 17 00:00:00 2001 From: Susmit Kumar Mishra Date: Sun, 7 Feb 2021 13:01:20 +0530 Subject: [PATCH] created custom hash function --- custom_hash.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 custom_hash.cpp diff --git a/custom_hash.cpp b/custom_hash.cpp new file mode 100644 index 0000000..1c55019 --- /dev/null +++ b/custom_hash.cpp @@ -0,0 +1,20 @@ +#include +using namespace std; + +struct custom_hash { + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + + +int main(){}