From 0eada2ae939a023cc53c2cb45c1d3a48bc5bda22 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Mon, 30 May 2022 02:26:12 +0300 Subject: [PATCH] Revert hash_combine for floats --- include/boost/container_hash/hash.hpp | 12 ++++++------ test/hash_complex_test.cpp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/boost/container_hash/hash.hpp b/include/boost/container_hash/hash.hpp index eeaca31..7c6223d 100644 --- a/include/boost/container_hash/hash.hpp +++ b/include/boost/container_hash/hash.hpp @@ -204,8 +204,8 @@ namespace boost std::size_t seed = 0; - boost::hash_combine( seed, w[ 0 ] ); - boost::hash_combine( seed, w[ 1 ] ); + seed ^= static_cast( w[0] ) + ( seed << 6 ) + ( seed >> 2 ); + seed ^= static_cast( w[1] ) + ( seed << 6 ) + ( seed >> 2 ); return seed; } @@ -221,8 +221,8 @@ namespace boost std::size_t seed = 0; - boost::hash_combine( seed, w[ 0 ] ); - boost::hash_combine( seed, w[ 1 ] ); + seed ^= static_cast( w[0] ) + ( seed << 6 ) + ( seed >> 2 ); + seed ^= static_cast( w[1] ) + ( seed << 6 ) + ( seed >> 2 ); return seed; } @@ -238,8 +238,8 @@ namespace boost std::size_t seed = 0; - boost::hash_combine( seed, w[ 0 ] ); - boost::hash_combine( seed, w[ 1 ] ); + seed ^= static_cast( w[0] ) + ( seed << 6 ) + ( seed >> 2 ); + seed ^= static_cast( w[1] ) + ( seed << 6 ) + ( seed >> 2 ); return seed; } diff --git a/test/hash_complex_test.cpp b/test/hash_complex_test.cpp index 2435ab4..73f43de 100644 --- a/test/hash_complex_test.cpp +++ b/test/hash_complex_test.cpp @@ -123,7 +123,7 @@ int main() complex_grid_test( 16 ); complex_grid_test( 7 ); complex_grid_test( 16 ); - complex_grid_test( 16 ); + complex_grid_test( 15 ); return boost::report_errors(); }