5#include <unordered_map>
22template<
typename ParametricType>
26namespace transformer {
38template<
typename ParametricType,
typename ConstantType>
54 bool useMonotonicity =
false);
75 std::shared_ptr<storm::analysis::Order> reachabilityOrder,
82 std::vector<ConstantType>
const&
getVector()
const;
121 std::set<VariableType> lowerPars, upperPars, unspecifiedPars;
126 std::vector<AbstractValuation>
const&
getRowLabels()
const;
139 class FunctionValuationCollector {
141 FunctionValuationCollector() =
default;
147 ConstantType& add(ParametricType
const& function,
AbstractValuation const& valuation);
154 typedef std::pair<ParametricType, AbstractValuation> FunctionValuation;
158 std::size_t operator()(FunctionValuation
const& fv)
const {
159 std::size_t seed = 0;
160 carl::hash_add(seed, fv.first);
161 carl::hash_add(seed, fv.second.getHashValue());
167 std::unordered_map<FunctionValuation, ConstantType, FuncValHash> collectedFunctions;
170 FunctionValuationCollector functionValuationCollector;
173 std::vector<AbstractValuation> getVerticesOfAbstractRegion(std::set<VariableType>
const& variables)
const;
175 std::vector<AbstractValuation> rowLabels;
177 std::vector<uint_fast64_t> oldToNewColumnIndexMapping;
178 std::vector<uint_fast64_t> rowGroupToStateNumber;
181 std::vector<std::pair<typename storm::storage::SparseMatrix<ConstantType>::iterator, ConstantType&>>
184 std::vector<ConstantType> vector;
185 std::vector<std::pair<typename std::vector<ConstantType>::iterator, ConstantType&>> vectorAssignment;
188 std::vector<std::set<VariableType>> occurringVariablesAtState;
189 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.