5#include <unordered_map>
23template<
typename ParametricType>
27namespace transformer {
39template<
typename ParametricType,
typename ConstantType>
55 bool useMonotonicity =
false);
76 std::shared_ptr<storm::analysis::Order> reachabilityOrder,
83 std::vector<ConstantType>
const&
getVector()
const;
122 std::set<VariableType> lowerPars, upperPars, unspecifiedPars;
127 std::vector<AbstractValuation>
const&
getRowLabels()
const;
140 class FunctionValuationCollector {
142 FunctionValuationCollector() =
default;
148 ConstantType& add(ParametricType
const& function,
AbstractValuation const& valuation);
155 typedef std::pair<ParametricType, AbstractValuation> FunctionValuation;
159 std::size_t operator()(FunctionValuation
const& fv)
const {
160 std::size_t seed = 0;
161 carl::hash_add(seed, fv.first);
162 carl::hash_add(seed, fv.second.getHashValue());
168 std::unordered_map<FunctionValuation, ConstantType, FuncValHash> collectedFunctions;
171 FunctionValuationCollector functionValuationCollector;
174 std::vector<AbstractValuation> getVerticesOfAbstractRegion(std::set<VariableType>
const& variables)
const;
176 std::vector<AbstractValuation> rowLabels;
178 std::vector<uint_fast64_t> oldToNewColumnIndexMapping;
179 std::vector<uint_fast64_t> rowGroupToStateNumber;
182 std::vector<std::pair<typename storm::storage::SparseMatrix<ConstantType>::iterator, ConstantType&>>
185 std::vector<ConstantType> vector;
186 std::vector<std::pair<typename std::vector<ConstantType>::iterator, ConstantType&>> vectorAssignment;
189 std::vector<std::set<VariableType>> occurringVariablesAtState;
190 std::map<VariableType, std::set<uint_fast64_t>> occuringStatesAtVariable;
A bit vector that is internally represented as a vector of 64-bit values.
A class that holds a possibly non-square matrix in the compressed row storage format.
MonotonicityKind
The results of monotonicity checking for a single Parameter Region.