Switch default mixing policy from xmx to mulx

This commit is contained in:
Peter Dimov
2023-01-27 08:15:37 +02:00
parent 9bc471310e
commit 0f8dd003a3

View File

@ -726,9 +726,11 @@ private:
std::size_t pos,step=0; std::size_t pos,step=0;
}; };
/* Mixing policies: no_mix is the identity function and xmx_mix uses the /* Mixing policies: no_mix is the identity function, xmx_mix uses the
* xmx function defined in <boost/unordered/detail/xmx.hpp>. * xmx function defined in <boost/unordered/detail/xmx.hpp>, and mulx_mix
* foa::table mixes hash results with xmx_mix unless the hash is marked as * uses the mulx function from <boost/unordered/detail/mulx.hpp>.
*
* foa::table mixes hash results with mulx_mix unless the hash is marked as
* avalanching, i.e. of good quality (see <boost/unordered/hash_traits.hpp>). * avalanching, i.e. of good quality (see <boost/unordered/hash_traits.hpp>).
*/ */
@ -1164,7 +1166,7 @@ table:empty_value<Hash,0>,empty_value<Pred,1>,empty_value<Allocator,2>
using mix_policy=typename std::conditional< using mix_policy=typename std::conditional<
hash_is_avalanching<Hash>::value, hash_is_avalanching<Hash>::value,
no_mix, no_mix,
xmx_mix mulx_mix
>::type; >::type;
using alloc_traits=boost::allocator_traits<Allocator>; using alloc_traits=boost::allocator_traits<Allocator>;