5#include <unordered_map>
24template<
typename ParametricType>
28namespace transformer {
40template<
typename ParametricType,
typename ConstantType>
56 bool useMonotonicity =
false);
77 std::shared_ptr<storm::analysis::Order> reachabilityOrder,
84 std::vector<Interval>
const&
getVector()
const;
113 std::optional<std::map<VariableType, std::set<CoefficientType>>>
const&
getExtrema()
const;
122 std::optional<std::set<CoefficientType>> zeroesCarl(
UniPoly polynomial,
VariableType parameter);
124 std::set<VariableType> parameters;
129 std::optional<std::map<VariableType, std::set<CoefficientType>>> extrema;
132 std::optional<Annotation> annotation;
141 class FunctionValuationCollector {
143 FunctionValuationCollector() =
default;
155 class RobustAbstractValuationHash {
163 std::unordered_map<RobustAbstractValuation, Interval, RobustAbstractValuationHash> collectedValuations;
166 std::unordered_map<RobustAbstractValuation, std::vector<std::pair<Interval, Interval>>, RobustAbstractValuationHash> regionsAndBounds;
169 FunctionValuationCollector functionValuationCollector;
172 std::vector<std::pair<typename storm::storage::SparseMatrix<Interval>::iterator,
Interval&>>
175 std::vector<uint64_t> oldToNewColumnIndexMapping;
176 std::vector<uint64_t> oldToNewRowIndexMapping;
177 std::vector<uint64_t> rowGroupToStateNumber;
179 bool currentRegionAllIllDefined =
false;
181 std::vector<Interval> vector;
182 std::vector<std::pair<typename std::vector<Interval>::iterator,
Interval&>> vectorAssignment;
184 std::vector<std::set<VariableType>> occurringVariablesAtState;
185 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.
carl::Interval< double > Interval
Interval type.
carl::MultivariatePolynomial< RationalFunctionCoefficient > RawPolynomial