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<Interval>
const&
getVector()
const;
112 std::optional<std::map<VariableType, std::set<CoefficientType>>>
const&
getExtrema()
const;
121 std::optional<std::set<CoefficientType>> zeroesCarl(
UniPoly polynomial,
VariableType parameter);
123 std::set<VariableType> parameters;
128 std::optional<std::map<VariableType, std::set<CoefficientType>>> extrema;
131 std::optional<Annotation> annotation;
140 class FunctionValuationCollector {
142 FunctionValuationCollector() =
default;
154 class RobustAbstractValuationHash {
162 std::unordered_map<RobustAbstractValuation, Interval, RobustAbstractValuationHash> collectedValuations;
165 std::unordered_map<RobustAbstractValuation, std::vector<std::pair<Interval, Interval>>, RobustAbstractValuationHash> regionsAndBounds;
168 FunctionValuationCollector functionValuationCollector;
171 std::vector<std::pair<typename storm::storage::SparseMatrix<Interval>::iterator,
Interval&>>
174 std::vector<uint64_t> oldToNewColumnIndexMapping;
175 std::vector<uint64_t> oldToNewRowIndexMapping;
176 std::vector<uint64_t> rowGroupToStateNumber;
178 bool currentRegionAllIllDefined =
false;
180 std::vector<Interval> vector;
181 std::vector<std::pair<typename std::vector<Interval>::iterator,
Interval&>> vectorAssignment;
183 std::vector<std::set<VariableType>> occurringVariablesAtState;
184 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