Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExplicitQuantitativeCheckResult.h
Go to the documentation of this file.
1#pragma once
2#include <boost/optional.hpp>
3#include <boost/variant.hpp>
4#include <map>
5#include <optional>
6#include <vector>
7
15
16namespace storm {
17
18namespace modelchecker {
19// Forward declaration
20class ExplicitQualitativeCheckResult;
21
22template<typename ValueType>
24 public:
25 typedef std::vector<ValueType> vector_type;
26 typedef std::map<storm::storage::sparse::state_type, ValueType> map_type;
27
31 ExplicitQuantitativeCheckResult(storm::storage::sparse::state_type const& state, ValueType const& value);
34 ExplicitQuantitativeCheckResult(boost::variant<vector_type, map_type> const& values,
35 boost::optional<std::shared_ptr<storm::storage::Scheduler<ValueType>>> scheduler = boost::none);
36 ExplicitQuantitativeCheckResult(boost::variant<vector_type, map_type>&& values,
37 boost::optional<std::shared_ptr<storm::storage::Scheduler<ValueType>>> scheduler = boost::none);
38
41#ifndef WINDOWS
44#endif
46
48
49 virtual std::unique_ptr<CheckResult> clone() const override;
50
52 ValueType const& operator[](storm::storage::sparse::state_type state) const;
53
54 virtual std::unique_ptr<CheckResult> compareAgainstBound(storm::logic::ComparisonType comparisonType, ValueType const& bound) const override;
55
56 virtual bool isExplicit() const override;
57 virtual bool isResultForAllStates() const override;
58
59 virtual bool isExplicitQuantitativeCheckResult() const override;
60
61 vector_type const& getValueVector() const;
63 map_type const& getValueMap() const;
64
65 virtual std::ostream& writeToStream(std::ostream& out) const override;
66
67 virtual void filter(QualitativeCheckResult const& filter) override;
68
69 virtual void oneMinus() override;
70
71 virtual ValueType getMin() const override;
72 virtual ValueType getMax() const override;
73 virtual std::pair<ValueType, ValueType> getMinMax() const;
74 virtual ValueType average() const override;
75 virtual ValueType sum() const override;
76
77 virtual bool hasScheduler() const override;
78 void setScheduler(std::unique_ptr<storm::storage::Scheduler<ValueType>>&& scheduler);
81
82 storm::json<ValueType> toJson(std::optional<storm::storage::sparse::StateValuations> const& stateValuations = std::nullopt,
83 std::optional<storm::models::sparse::StateLabeling> const& stateLabels = std::nullopt) const;
84
85 private:
86 // The values of the quantitative check result.
87 boost::variant<vector_type, map_type> values;
88
89 // An optional scheduler that accompanies the values.
90 boost::optional<std::shared_ptr<storm::storage::Scheduler<ValueType>>> scheduler;
91};
92} // namespace modelchecker
93} // namespace storm
virtual std::ostream & writeToStream(std::ostream &out) const override
virtual std::unique_ptr< CheckResult > clone() const override
storm::storage::Scheduler< ValueType > const & getScheduler() const
std::map< storm::storage::sparse::state_type, ValueType > map_type
ValueType & operator[](storm::storage::sparse::state_type state)
ExplicitQuantitativeCheckResult & operator=(ExplicitQuantitativeCheckResult const &other)=default
ExplicitQuantitativeCheckResult(ExplicitQuantitativeCheckResult &&other)=default
storm::json< ValueType > toJson(std::optional< storm::storage::sparse::StateValuations > const &stateValuations=std::nullopt, std::optional< storm::models::sparse::StateLabeling > const &stateLabels=std::nullopt) const
ExplicitQuantitativeCheckResult(ExplicitQuantitativeCheckResult const &other)=default
virtual std::pair< ValueType, ValueType > getMinMax() const
virtual void filter(QualitativeCheckResult const &filter) override
Filters the current result wrt.
void setScheduler(std::unique_ptr< storm::storage::Scheduler< ValueType > > &&scheduler)
ExplicitQuantitativeCheckResult & operator=(ExplicitQuantitativeCheckResult &&other)=default
virtual std::unique_ptr< CheckResult > compareAgainstBound(storm::logic::ComparisonType comparisonType, ValueType const &bound) const override
This class defines which action is chosen in a particular state of a non-deterministic model.
Definition Scheduler.h:18
LabParser.cpp.
Definition cli.cpp:18
nlohmann::basic_json< std::map, std::vector, std::string, bool, int64_t, uint64_t, ValueType > json
Definition JsonForward.h:10