diff --git a/include/boost/functional/detail/hash_float.hpp b/include/boost/functional/detail/hash_float.hpp index 0e81566..86606df 100644 --- a/include/boost/functional/detail/hash_float.hpp +++ b/include/boost/functional/detail/hash_float.hpp @@ -47,11 +47,11 @@ namespace boost namespace hash_detail { template - struct float_limits : std::numeric_limits {}; + struct limits : std::numeric_limits {}; #if defined(__OpenBSD__) template <> - struct float_limits + struct limits : std::numeric_limits { static long double epsilon() { @@ -96,19 +96,19 @@ namespace boost //BOOST_ASSERT(0 <= v && v < 0.5); v = boost::hash_detail::call_ldexp(v, - float_limits::digits + 1); + limits::digits + 1); std::size_t seed = static_cast(v); v -= seed; // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1; std::size_t const length - = (float_limits::digits * - boost::static_log2::radix>::value - 1) - / float_limits::digits; + = (limits::digits * + boost::static_log2::radix>::value - 1) + / limits::digits; for(std::size_t i = 0; i < length; ++i) { - v = boost::hash_detail::call_ldexp(v, float_limits::digits); + v = boost::hash_detail::call_ldexp(v, limits::digits); std::size_t part = static_cast(v); v -= part; hash_float_combine(seed, part); diff --git a/test/hash_float_test.cpp b/test/hash_float_test.cpp index 97b687c..803cc49 100644 --- a/test/hash_float_test.cpp +++ b/test/hash_float_test.cpp @@ -24,12 +24,12 @@ void float_tests(char const* name, T* = 0) std::cerr<<"\n" <<"Testing " BOOST_STRINGIZE(HASH_NAMESPACE) "::hash<"<\n" <<"\n" - <<"boost::hash_detail::float_limits::digits = " - <::digits<<"\n" - <<"boost::hash_detail::float_limits::digits = " - <::digits<<"\n" - <<"boost::hash_detail::float_limits::digits = " - <::digits<<"\n" + <<"boost::hash_detail::limits::digits = " + <::digits<<"\n" + <<"boost::hash_detail::limits::digits = " + <::digits<<"\n" + <<"boost::hash_detail::limits::digits = " + <::digits<<"\n" <<"\n" ; @@ -50,11 +50,11 @@ void float_tests(char const* name, T* = 0) #if defined(__BORLANDC__) std::cerr<<"Not running infinity checks on Borland, as it causes it to crash.\n"; #else - if(boost::hash_detail::float_limits::has_infinity) { + if(boost::hash_detail::limits::has_infinity) { T infinity = -log(zero); T infinity2 = (T) 1. / zero; T infinity3 = (T) -1. / minus_zero; - T infinity4 = boost::hash_detail::float_limits::infinity(); + T infinity4 = boost::hash_detail::limits::infinity(); T minus_infinity = log(zero); T minus_infinity2 = (T) -1. / zero; @@ -84,26 +84,26 @@ void float_tests(char const* name, T* = 0) // This should really be 'has_denorm == denorm_present' but some // compilers don't have 'denorm_present'. See also a later use. - if(boost::hash_detail::float_limits::has_denorm) { - if(x1(boost::hash_detail::float_limits::denorm_min()) == x1(infinity)) { + if(boost::hash_detail::limits::has_denorm) { + if(x1(boost::hash_detail::limits::denorm_min()) == x1(infinity)) { std::cerr<<"x1(denorm_min) == x1(infinity) == "<::denorm_min()) == x1(minus_infinity)) { + if(x1(boost::hash_detail::limits::denorm_min()) == x1(minus_infinity)) { std::cerr<<"x1(denorm_min) == x1(-infinity) == "<::has_quiet_NaN) { - if(x1(boost::hash_detail::float_limits::quiet_NaN()) == x1(infinity)) { + if(boost::hash_detail::limits::has_quiet_NaN) { + if(x1(boost::hash_detail::limits::quiet_NaN()) == x1(infinity)) { std::cerr<<"x1(quiet_NaN) == x1(infinity) == "<::quiet_NaN()) == x1(minus_infinity)) { + if(x1(boost::hash_detail::limits::quiet_NaN()) == x1(minus_infinity)) { std::cerr<<"x1(quiet_NaN) == x1(-infinity) == "<::max)(); + T max = (boost::hash_detail::limits::max)(); T half_max = max / 2; T quarter_max = max / 4; T three_quarter_max = max - quarter_max; @@ -132,50 +132,50 @@ void float_tests(char const* name, T* = 0) BOOST_TEST(x1(v1) == HASH_NAMESPACE::hash_value(v1)); BOOST_TEST(x1(v2) == HASH_NAMESPACE::hash_value(v2)); - BOOST_TEST(x1(boost::hash_detail::float_limits::epsilon()) == - HASH_NAMESPACE::hash_value(boost::hash_detail::float_limits::epsilon())); + BOOST_TEST(x1(boost::hash_detail::limits::epsilon()) == + HASH_NAMESPACE::hash_value(boost::hash_detail::limits::epsilon())); - BOOST_TEST(boost::hash_detail::float_limits::epsilon() != (T) 0); - if(x1(boost::hash_detail::float_limits::epsilon()) == x1((T) 0)) + BOOST_TEST(boost::hash_detail::limits::epsilon() != (T) 0); + if(x1(boost::hash_detail::limits::epsilon()) == x1((T) 0)) std::cerr<<"x1(epsilon) == x1(0) == "<::epsilon() != (T) 0); - if(x1(-boost::hash_detail::float_limits::epsilon()) == x1((T) 0)) + BOOST_TEST(-boost::hash_detail::limits::epsilon() != (T) 0); + if(x1(-boost::hash_detail::limits::epsilon()) == x1((T) 0)) std::cerr<<"x1(-epsilon) == x1(0) == "<::epsilon() != (T) 1); - if(x1((T) 1 + boost::hash_detail::float_limits::epsilon()) == x1((T) 1)) + BOOST_TEST((T) 1 + boost::hash_detail::limits::epsilon() != (T) 1); + if(x1((T) 1 + boost::hash_detail::limits::epsilon()) == x1((T) 1)) std::cerr<<"x1(1 + epsilon) == x1(1) == "<::epsilon() != (T) 1); - if(x1((T) 1 - boost::hash_detail::float_limits::epsilon()) == x1((T) 1)) + BOOST_TEST((T) 1 - boost::hash_detail::limits::epsilon() != (T) 1); + if(x1((T) 1 - boost::hash_detail::limits::epsilon()) == x1((T) 1)) std::cerr<<"x1(1 - epsilon) == x1(1) == "<::epsilon() != (T) -1); - if(x1((T) -1 + boost::hash_detail::float_limits::epsilon()) == x1((T) -1)) + BOOST_TEST((T) -1 + boost::hash_detail::limits::epsilon() != (T) -1); + if(x1((T) -1 + boost::hash_detail::limits::epsilon()) == x1((T) -1)) std::cerr<<"x1(-1 + epsilon) == x1(-1) == "<::epsilon() != (T) -1); - if(x1((T) -1 - boost::hash_detail::float_limits::epsilon()) == x1((T) -1)) + BOOST_TEST((T) -1 - boost::hash_detail::limits::epsilon() != (T) -1); + if(x1((T) -1 - boost::hash_detail::limits::epsilon()) == x1((T) -1)) std::cerr<<"x1(-1 - epsilon) == x1(-1) == "<::has_denorm) { - if(x1(boost::hash_detail::float_limits::denorm_min()) == x1(zero)) { + if(boost::hash_detail::limits::has_denorm) { + if(x1(boost::hash_detail::limits::denorm_min()) == x1(zero)) { std::cerr<<"x1(denorm_min) == x1(zero) == "<::denorm_min()) != - HASH_NAMESPACE::hash_value(boost::hash_detail::float_limits::denorm_min())) + if(x1(boost::hash_detail::limits::denorm_min()) != + HASH_NAMESPACE::hash_value(boost::hash_detail::limits::denorm_min())) { - std::cerr<<"x1(boost::hash_detail::float_limits::denorm_min()) = " - << x1(boost::hash_detail::float_limits::denorm_min()) - << "\nhash_value(boost::hash_detail::float_limits::denorm_min()) = " + std::cerr<<"x1(boost::hash_detail::limits::denorm_min()) = " + << x1(boost::hash_detail::limits::denorm_min()) + << "\nhash_value(boost::hash_detail::limits::denorm_min()) = " << HASH_NAMESPACE::hash_value( - boost::hash_detail::float_limits::denorm_min()) + boost::hash_detail::limits::denorm_min()) << "\nx1(0) = "<::has_quiet_NaN) { - if(x1(boost::hash_detail::float_limits::quiet_NaN()) == x1(1.0)) { + if(boost::hash_detail::limits::has_quiet_NaN) { + if(x1(boost::hash_detail::limits::quiet_NaN()) == x1(1.0)) { std::cerr<<"x1(quiet_NaN) == x1(1.0) == "<::quiet_NaN()) == - HASH_NAMESPACE::hash_value(boost::hash_detail::float_limits::quiet_NaN())); + BOOST_TEST(x1(boost::hash_detail::limits::quiet_NaN()) == + HASH_NAMESPACE::hash_value(boost::hash_detail::limits::quiet_NaN())); } #endif } diff --git a/test/hash_number_test.cpp b/test/hash_number_test.cpp index d708cd9..595ee43 100644 --- a/test/hash_number_test.cpp +++ b/test/hash_number_test.cpp @@ -24,7 +24,7 @@ template void numeric_test(T*) { - typedef boost::hash_detail::float_limits limits; + typedef boost::hash_detail::limits limits; compile_time_tests((T*) 0); @@ -60,7 +60,7 @@ void numeric_test(T*) template void limits_test(T*) { - typedef boost::hash_detail::float_limits limits; + typedef boost::hash_detail::limits limits; if(limits::is_specialized) { @@ -91,7 +91,7 @@ void limits_test(T*) template void poor_quality_tests(T*) { - typedef boost::hash_detail::float_limits limits; + typedef boost::hash_detail::limits limits; HASH_NAMESPACE::hash x1; HASH_NAMESPACE::hash x2;