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<storm::RationalFunction>()(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<typename C, typename O, typename P> inline size_t hash_value(carl::MultivariatePolynomial<C,O,P> const& p) { std::hash<carl::MultivariatePolynomial<C,O,P>> h; @@ -19,19 +20,19 @@ namespace carl { template<typename Pol> inline size_t hash_value(carl::FactorizedPolynomial<Pol> const& p) { - std::hash<FactorizedPolynomial<Pol>> h; + std::hash<carl::FactorizedPolynomial<Pol>> h; return h(p); } template<typename Pol, bool AutoSimplify> inline size_t hash_value(carl::RationalFunction<Pol, AutoSimplify> const& f) { - std::hash<Pol> h; - return h(f.nominator()) ^ h(f.denominator()); + std::hash<carl::RationalFunction<Pol, AutoSimplify>> h; + return h(f); } template<typename Number> inline size_t hash_value(carl::Interval<Number> const& i) { - std::hash<Interval<Number>> h; + std::hash<carl::Interval<Number>> h; return h(i); } @@ -52,7 +53,7 @@ namespace storm { typedef carl::MultivariatePolynomial<RationalFunctionCoefficient> RawPolynomial; typedef carl::FactorizedPolynomial<RawPolynomial> Polynomial; - typedef carl::Cache<carl::PolynomialFactorizationPair<RawPolynomial>> RawPolynomialCache; + typedef carl::Cache<carl::PolynomialFactorizationPair<RawPolynomial>> RawPolynomialCache; typedef carl::Relation CompareRelation; typedef carl::RationalFunction<Polynomial, true> RationalFunction;