From 3aff6ba0e6076ca1a613c5b1d36698a578943de0 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Thu, 27 Oct 2022 18:01:16 +0200 Subject: [PATCH] streamlined mixing into find (experiment) --- include/boost/unordered/detail/foa.hpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/include/boost/unordered/detail/foa.hpp b/include/boost/unordered/detail/foa.hpp index 5f731494..7f657d6f 100644 --- a/include/boost/unordered/detail/foa.hpp +++ b/include/boost/unordered/detail/foa.hpp @@ -1384,8 +1384,18 @@ public: template BOOST_FORCEINLINE iterator find(const Key& x) { - auto hash=hash_for(x); - return find_impl(x,position_for(hash),hash); + //auto hash=hash_for(x); + auto hash=h()(x); + + boost::uint64_t z=(boost::uint64_t)hash; + + z^=z>>23; + z*=0xff51afd7ed558ccdull; + z^=z>>23; + + //hash=(std::size_t)z; + + return find_impl(x,position_for(z),z); } template