mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-29 19:07:15 +02:00
Update mulx multipliers
This commit is contained in:
@ -94,15 +94,17 @@ inline boost::uint32_t mulx32( boost::uint32_t x, boost::uint32_t y )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// multipliers from https://arxiv.org/abs/2001.05304
|
||||
|
||||
inline std::size_t mulx( std::size_t x ) noexcept
|
||||
{
|
||||
#if defined(BOOST_UNORDERED_64B_ARCHITECTURE)
|
||||
|
||||
return (std::size_t)mulx64( (boost::uint64_t)x, 0x9E3779B97F4A7C15ull );
|
||||
return (std::size_t)mulx64( (boost::uint64_t)x, 0xDEFBA91144F2B375ull );
|
||||
|
||||
#else /* 32 bits assumed */
|
||||
|
||||
return mulx32( x, 0x9E3779B9u );
|
||||
return mulx32( x, 0xE817FB2Du );
|
||||
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user