5#include <unordered_map>
14namespace abstraction {
16template<storm::dd::DdType DdType>
17class AbstractionInformation;
19template<storm::dd::DdType DdType>
35 std::map<uint64_t, uint64_t>
addExpression(uint_fast64_t globalExpressionIndex);
61 std::map<uint64_t, uint64_t>
relate(std::set<storm::expressions::Variable>
const& variables);
116 std::set<uint_fast64_t>
getRelatedExpressions(std::set<storm::expressions::Variable>
const& variables)
const;
141 template<storm::dd::DdType DdTypePrime>
151 std::map<uint64_t, uint64_t> mergeBlocks(std::set<uint_fast64_t>
const& blocksToMerge);
154 std::set<storm::expressions::Variable> relevantVariables;
157 std::unordered_map<storm::expressions::Variable, uint_fast64_t> variableToBlockMapping;
160 std::vector<std::set<storm::expressions::Variable>> variableBlocks;
163 std::vector<std::set<uint_fast64_t>> expressionBlocks;
166 std::unordered_map<storm::expressions::Variable, std::set<uint_fast64_t>> variableToExpressionsMapping;
169 std::reference_wrapper<AbstractionInformation<DdType>
const> abstractionInformation;
172template<storm::dd::DdType DdType>
std::ostream & operator<<(std::ostream &out, LocalExpressionInformation< DdType > const &partition)