Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AddUncertainty.h
Go to the documentation of this file.
1#pragma once
2
3#include <type_traits>
4
9
10namespace storm::transformer {
11
22template<typename ValueType>
24 public:
25 using IntervalType = std::conditional_t<std::is_same_v<ValueType, storm::RationalNumber>, storm::RationalInterval, storm::Interval>;
26 static_assert(std::is_same_v<ValueType, storm::IntervalBaseType<IntervalType>>, "Expected ValueType to match the interval base type.");
27
28 AddUncertainty(std::shared_ptr<storm::models::sparse::Model<ValueType>> const& originalModel);
29 std::shared_ptr<storm::models::sparse::Model<IntervalType>> transform(ValueType additiveUncertainty,
30 ValueType minimalValue = storm::utility::convertNumber<ValueType>(0.0001),
31 std::optional<uint64_t> maxSuccessors = {});
32
33 private:
34 IntervalType addUncertainty(ValueType const& vt, ValueType additiveUncertainty, ValueType minimalValue);
35 std::shared_ptr<storm::models::sparse::Model<ValueType>> origModel;
36};
37
38} // namespace storm::transformer
Base class for all sparse models.
Definition Model.h:30
std::conditional_t< std::is_same_v< ValueType, storm::RationalNumber >, storm::RationalInterval, storm::Interval > IntervalType
std::shared_ptr< storm::models::sparse::Model< IntervalType > > transform(ValueType additiveUncertainty, ValueType minimalValue=storm::utility::convertNumber< ValueType >(0.0001), std::optional< uint64_t > maxSuccessors={})
AddUncertainty(std::shared_ptr< storm::models::sparse::Model< ValueType > > const &originalModel)
TargetType convertNumber(SourceType const &number)
carl::Interval< storm::RationalNumber > RationalInterval
carl::Interval< double > Interval
Interval type.