10namespace modelchecker {
12template<
typename ValueType>
15 : regionResults(regionResults) {
16 auto overallArea = storm::utility::zero<typename storm::storage::ParameterRegion<ValueType>::CoefficientType>();
18 overallArea += res.first.area();
23template<
typename ValueType>
26 : regionResults(
std::move(regionResults)) {
27 auto overallArea = storm::utility::zero<typename storm::storage::ParameterRegion<ValueType>::CoefficientType>();
29 overallArea += res.first.area();
34template<
typename ValueType>
36 return std::make_unique<RegionCheckResult<ValueType>>(this->regionResults);
39template<
typename ValueType>
44template<
typename ValueType>
49template<
typename ValueType>
55template<
typename ValueType>
60template<
typename ValueType>
65template<
typename ValueType>
67 writeCondensedToStream(out);
68 out <<
"\nRegion results: \n";
69 for (
auto const& res : this->regionResults) {
70 out << res.first.toString() <<
": \t" << res.second <<
'\n';
75template<
typename ValueType>
77 double satPercent = storm::utility::convertNumber<double>(satFraction) * 100.0;
78 double unsatPercent = storm::utility::convertNumber<double>(unsatFraction) * 100.0;
79 auto oneHundred = storm::utility::convertNumber<typename storm::storage::ParameterRegion<ValueType>::CoefficientType>(100.0);
80 auto one = storm::utility::convertNumber<typename storm::storage::ParameterRegion<ValueType>::CoefficientType>(1.0);
81 out <<
" Fraction of satisfied area: " << satPercent <<
"%\n";
82 out <<
"Fraction of unsatisfied area: " << unsatPercent <<
"%\n";
83 out <<
" Unknown fraction: " << (100.0 - satPercent - unsatPercent) <<
"%\n";
84 out <<
" Total number of regions: " << regionResults.size() <<
'\n';
85 std::map<storm::modelchecker::RegionResult, uint_fast64_t> counters;
86 for (
auto const& res : this->regionResults) {
87 ++counters[res.second];
89 for (
auto const& counter : counters) {
90 out << std::setw(28) << counter.first <<
": " << counter.second <<
'\n';
95template<
typename ValueType>
97 STORM_LOG_WARN(
"Writing illustration of region check result to a stream is not implemented.");
101template<
typename ValueType>
103 auto satArea = storm::utility::zero<typename storm::storage::ParameterRegion<ValueType>::CoefficientType>();
104 auto unsatArea = storm::utility::zero<typename storm::storage::ParameterRegion<ValueType>::CoefficientType>();
105 for (
auto const& res : this->regionResults) {
107 satArea += res.first.area();
109 unsatArea += res.first.area();
112 satFraction = satArea / overallArea;
113 unsatFraction = unsatArea / overallArea;
116template<
typename ValueType>
122#ifdef STORM_HAVE_CARL
virtual std::ostream & writeCondensedToStream(std::ostream &out) const
virtual void initFractions(typename storm::storage::ParameterRegion< ValueType >::CoefficientType const &overallArea)
virtual std::ostream & writeIllustrationToStream(std::ostream &out) const
virtual std::ostream & writeToStream(std::ostream &out) const override
virtual bool isRegionRefinementCheckResult() const
std::vector< std::pair< storm::storage::ParameterRegion< ValueType >, storm::modelchecker::RegionResult > > const & getRegionResults() const
storm::storage::ParameterRegion< ValueType >::CoefficientType const & getSatFraction() const
storm::storage::ParameterRegion< ValueType >::CoefficientType const & getUnsatFraction() const
virtual bool isRegionCheckResult() const
RegionCheckResult(std::vector< std::pair< storm::storage::ParameterRegion< ValueType >, storm::modelchecker::RegionResult > > const ®ionResults)
virtual std::unique_ptr< CheckResult > clone() const override
virtual void filter(QualitativeCheckResult const &filter) override
Filters the current result wrt.
std::vector< std::pair< storm::storage::ParameterRegion< ValueType >, storm::modelchecker::RegionResult > > regionResults
storm::utility::parametric::CoefficientType< ParametricType >::type CoefficientType
#define STORM_LOG_WARN(message)
RegionResult
The results for a single Parameter Region.
@ AllSat
the formula is satisfied for all parameters in the given region
@ AllViolated
the formula is violated for all parameters in the given region