5#include <unordered_map>
18namespace transformer {
30template<
typename ParametricType,
typename ConstantType>
46 bool useMonotonicity =
false);
67 std::shared_ptr<storm::analysis::Order> reachabilityOrder,
74 std::vector<ConstantType>
const&
getVector()
const;
113 std::set<VariableType> lowerPars, upperPars, unspecifiedPars;
118 std::vector<AbstractValuation>
const&
getRowLabels()
const;
131 class FunctionValuationCollector {
133 FunctionValuationCollector() =
default;
139 ConstantType& add(ParametricType
const& function,
AbstractValuation const& valuation);
146 typedef std::pair<ParametricType, AbstractValuation> FunctionValuation;
150 std::size_t operator()(FunctionValuation
const& fv)
const {
151 std::size_t seed = 0;
152 carl::hash_add(seed, fv.first);
153 carl::hash_add(seed, fv.second.getHashValue());
159 std::unordered_map<FunctionValuation, ConstantType, FuncValHash> collectedFunctions;
162 FunctionValuationCollector functionValuationCollector;
165 std::vector<AbstractValuation> getVerticesOfAbstractRegion(std::set<VariableType>
const& variables)
const;
167 std::vector<AbstractValuation> rowLabels;
169 std::vector<uint_fast64_t> oldToNewColumnIndexMapping;
170 std::vector<uint_fast64_t> rowGroupToStateNumber;
173 std::vector<std::pair<typename storm::storage::SparseMatrix<ConstantType>::iterator, ConstantType&>>
176 std::vector<ConstantType> vector;
177 std::vector<std::pair<typename std::vector<ConstantType>::iterator, ConstantType&>> vectorAssignment;
180 std::vector<std::set<VariableType>> occurringVariablesAtState;
181 std::map<VariableType, std::set<uint_fast64_t>> occuringStatesAtVariable;
Monotonicity
The results of monotonicity checking for a single Parameter Region.
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.