Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
CostLimitClosure.h
Go to the documentation of this file.
1#pragma once
2
3#include <set>
4#include <string>
5#include <vector>
6
8
9namespace storm {
10namespace modelchecker {
11namespace helper {
12namespace rewardbounded {
13
14class CostLimit {
15 public:
16 CostLimit(uint64_t const& costLimit);
17 bool isInfinity() const;
18 uint64_t const& get() const;
19 uint64_t& get();
20 bool operator<(CostLimit const& other) const;
21 bool operator==(CostLimit const& other) const;
22 static CostLimit infinity();
23
24 private:
25 uint64_t value;
26};
27typedef std::vector<CostLimit> CostLimits;
28
30 public:
32 bool operator()(CostLimits const& lhs, CostLimits const& rhs) const;
33 };
34 typedef std::set<CostLimits, CostLimitsCompare> GeneratorType;
35
36 explicit CostLimitClosure(storm::storage::BitVector const& downwardDimensions);
37 bool insert(CostLimits const& costLimits);
38 bool contains(CostLimits const& costLimits) const;
39 bool containsUpwardClosure(CostLimits const& costLimits) const;
40 bool dominates(CostLimits const& lhs, CostLimits const& rhs) const;
41 bool empty() const; // True if there is no point in this
42 bool full() const; // True if all points lie in this.
43 std::vector<CostLimits> getDominatingCostLimits(CostLimits const& costLimits) const;
44 GeneratorType const& getGenerator() const;
45 uint64_t dimension() const;
46
50 static bool unionFull(CostLimitClosure const& first, CostLimitClosure const& second);
51
52 private:
54 storm::storage::BitVector downwardDimensions;
55 GeneratorType generator;
56};
57} // namespace rewardbounded
58} // namespace helper
59} // namespace modelchecker
60} // namespace storm
static bool unionFull(CostLimitClosure const &first, CostLimitClosure const &second)
Returns true if the union of the two closures is full, i.e., contains every point.
std::vector< CostLimits > getDominatingCostLimits(CostLimits const &costLimits) const
bool dominates(CostLimits const &lhs, CostLimits const &rhs) const
std::set< CostLimits, CostLimitsCompare > GeneratorType
bool containsUpwardClosure(CostLimits const &costLimits) const
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
LabParser.cpp.
Definition cli.cpp:18
bool operator()(CostLimits const &lhs, CostLimits const &rhs) const