From 30565e4d0c420db19dcc35c9ada50b5902e4c775 Mon Sep 17 00:00:00 2001 From: Matthias Volk Date: Fri, 2 Aug 2019 19:03:28 +0200 Subject: [PATCH] Use carl hashing functions --- resources/3rdparty/sylvan/src/storm_wrapper.cpp | 2 +- src/storm/adapters/RationalFunctionAdapter.h | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/resources/3rdparty/sylvan/src/storm_wrapper.cpp b/resources/3rdparty/sylvan/src/storm_wrapper.cpp index 33316bd0b..6d12a0825 100644 --- a/resources/3rdparty/sylvan/src/storm_wrapper.cpp +++ b/resources/3rdparty/sylvan/src/storm_wrapper.cpp @@ -481,7 +481,7 @@ uint64_t storm_rational_function_hash(storm_rational_function_ptr const a, uint6 storm::RationalFunction const& srf_a = *(storm::RationalFunction const*)a; // Taken from boost::hash_combine that we do not call here for the lack of boost headers. - return seed ^ (carl::hash_value(srf_a) + 0x9e3779b9 + (seed<<6) + (seed>>2)); + return seed ^ (std::hash()(srf_a) + 0x9e3779b9 + (seed<<6) + (seed>>2)); } double storm_rational_function_get_value_double(storm_rational_function_ptr a) { diff --git a/src/storm/adapters/RationalFunctionAdapter.h b/src/storm/adapters/RationalFunctionAdapter.h index f403103f5..9ecf8b579 100644 --- a/src/storm/adapters/RationalFunctionAdapter.h +++ b/src/storm/adapters/RationalFunctionAdapter.h @@ -11,6 +11,7 @@ namespace carl { // Define hash values for all polynomials and rational function. + // Needed for boost::hash_combine() and other functions template inline size_t hash_value(carl::MultivariatePolynomial const& p) { std::hash> h; @@ -19,19 +20,19 @@ namespace carl { template inline size_t hash_value(carl::FactorizedPolynomial const& p) { - std::hash> h; + std::hash> h; return h(p); } template inline size_t hash_value(carl::RationalFunction const& f) { - std::hash h; - return h(f.nominator()) ^ h(f.denominator()); + std::hash> h; + return h(f); } template inline size_t hash_value(carl::Interval const& i) { - std::hash> h; + std::hash> h; return h(i); } @@ -52,7 +53,7 @@ namespace storm { typedef carl::MultivariatePolynomial RawPolynomial; typedef carl::FactorizedPolynomial Polynomial; - typedef carl::Cache> RawPolynomialCache; + typedef carl::Cache> RawPolynomialCache; typedef carl::Relation CompareRelation; typedef carl::RationalFunction RationalFunction;