#ifndef STORM_ADAPTERS_CARLADAPTER_H_ #define STORM_ADAPTERS_CARLADAPTER_H_ // Include config to know whether CARL is available or not. #include "storm-config.h" #ifdef STORM_HAVE_CARL #include #include #include #include #include #include #include namespace carl { // Define hash values for all polynomials and rational function. template inline size_t hash_value(carl::MultivariatePolynomial const& p) { std::hash> h; return h(p); } template inline size_t hash_value(carl::FactorizedPolynomial const& p) { 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()); } template inline size_t hash_value(carl::Interval const& i) { std::hash> h; return h(i); } } namespace storm { typedef cln::cl_RA RationalNumber; typedef carl::Variable Variable; typedef carl::MultivariatePolynomial RawPolynomial; typedef carl::FactorizedPolynomial Polynomial; typedef carl::Relation CompareRelation; typedef carl::RationalFunction RationalFunction; typedef carl::Interval Interval; template using ArithConstraint = carl::SimpleConstraint; } #endif #endif /* STORM_ADAPTERS_CARLADAPTER_H_ */