Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
QuantitativeCheckResult.h
Go to the documentation of this file.
1#pragma once
2
3#include <optional>
4
8
9namespace storm {
10namespace modelchecker {
11
16template<typename ValueType>
18 ValueType value;
19 std::optional<ValueType> lower;
20 std::optional<ValueType> upper;
21
22 bool hasLower() const {
23 return lower.has_value();
24 }
25
26 bool hasUpper() const {
27 return upper.has_value();
28 }
29};
30
31template<typename ValueType>
33 public:
35
36 virtual ~QuantitativeCheckResult() = default;
37
38 virtual std::unique_ptr<CheckResult> compareAgainstBound(storm::logic::ComparisonType comparisonType, ValueType const& bound) const;
39
40 virtual void oneMinus() = 0;
41
42 virtual ExtendedValueType getMin() const = 0;
43 virtual ExtendedValueType getMax() const = 0;
44
45 virtual ExtendedValueType average() const = 0;
46 virtual ExtendedValueType sum() const = 0;
47
55
56 virtual bool isQuantitative() const override;
57};
58} // namespace modelchecker
59} // namespace storm
virtual void filter(QualitativeCheckResult const &filter)=0
Filters the current result wrt.
virtual ExtendedValueType getMax() const =0
virtual AggregatedValue< ExtendedValueType > aggregate(FilterType filter) const
Aggregates the values of this result with the given filter, and each bound it carries alongside.
virtual ExtendedValueType average() const =0
virtual std::unique_ptr< CheckResult > compareAgainstBound(storm::logic::ComparisonType comparisonType, ValueType const &bound) const
virtual ExtendedValueType sum() const =0
storm::utility::ExtendedValueType< ValueType > ExtendedValueType
virtual ExtendedValueType getMin() const =0
std::conditional_t< storm::NumberTraits< ValueType >::HasInfinity, ValueType, ExtendedNumber< ValueType > > ExtendedValueType
The type to use for values that may be infinite.
The aggregate of the values of a quantitative check result, together with the aggregate of each bound...