19template<
typename ValueType>
29template<
typename ValueType>
59 requires(!std::is_same_v<storm::utility::ExtendedValueType<ValueType>, ValueType>);
61 requires(!std::is_same_v<storm::utility::ExtendedValueType<ValueType>, ValueType>);
63 requires(!std::is_same_v<storm::utility::ExtendedValueType<ValueType>, ValueType>);
73 virtual std::unique_ptr<CheckResult>
clone()
const override;
150 requires(!std::is_same_v<storm::utility::ExtendedValueType<ValueType>, ValueType>);
162 virtual std::ostream&
writeToStream(std::ostream& out)
const override;
170 virtual std::pair<ExtendedValueType, ExtendedValueType>
getMinMax()
const;
182 std::optional<storm::models::sparse::StateLabeling>
const& stateLabels = std::nullopt)
const;
185 bool hasValueType(std::type_info
const& t)
const override {
186 return t ==
typeid(ValueType);
203 template<
typename Function>
204 void forEachState(Function
const& f)
const {
206 for (uint64_t state : states) {
207 f(state, values[offset]);
215 void printValue(std::ostream& out, uint64_t offset)
const;
228 std::optional<std::shared_ptr<storm::storage::Scheduler<ValueType>>> scheduler;
bool hasValueType() const
Checks whether the ValueType of the result matches the given type.
A qualitative check result over the states of a sparse model.
ExtendedValueType & operator[](storm::storage::sparse::state_type state)
Retrieves the value of the given state.
virtual std::ostream & writeToStream(std::ostream &out) const override
void setLowerBounds(vector_type lowerBounds)
Sets sound bounds on the actual values.
std::vector< ValueType > getSentinelValueVector() const
virtual bool hasScheduler() const override
void setUpperBounds(vector_type upperBounds)
virtual std::unique_ptr< CheckResult > clone() const override
virtual ExtendedValueType average() const override
storm::storage::Scheduler< ValueType > const & getScheduler() const
bool hasValueForState(storm::storage::sparse::state_type state) const
Retrieves whether the result holds a value for the given state.
virtual ExtendedValueType getMax() const override
bool hasUpperBounds() const
ExplicitQuantitativeCheckResult(storm::storage::sparse::state_type const &state, ExtendedValueType const &value)
Creates a result that holds the given value for the given state only.
virtual AggregatedValue< ExtendedValueType > aggregate(FilterType filter) const override
Aggregates the values of this result with the given filter, and each bound it carries alongside.
ExplicitQuantitativeCheckResult & operator=(ExplicitQuantitativeCheckResult const &other)=default
ExplicitQuantitativeCheckResult(ExplicitQuantitativeCheckResult &&other)=default
std::vector< ValueType > getFiniteValueVector() const
virtual ~ExplicitQuantitativeCheckResult()=default
virtual bool isResultForAllStates() const override
std::vector< ExtendedValueType > vector_type
storm::json< ValueType > toJson(std::optional< storm::storage::sparse::Valuations > const &stateValuations=std::nullopt, std::optional< storm::models::sparse::StateLabeling > const &stateLabels=std::nullopt) const
virtual bool isExplicit() const override
virtual ExtendedValueType getMin() const override
virtual bool isExplicitQuantitativeCheckResult() const override
virtual std::pair< ExtendedValueType, ExtendedValueType > getMinMax() const
ExplicitQuantitativeCheckResult(ExplicitQuantitativeCheckResult const &other)=default
virtual void oneMinus() override
vector_type const & getUpperBoundVector() const
void setValuesExact()
States that the values of this result are the exact ones, i.e.
virtual void filter(QualitativeCheckResult const &filter) override
Filters the current result wrt.
void clearBounds()
Drops all bounds, e.g.
void setBounds(storm::solver::SolutionBounds< ExtendedValueType > bounds)
QuantitativeCheckResult< ValueType >::ExtendedValueType ExtendedValueType
vector_type const & getValueVector() const
Retrieves the values, one per state this result is for.
void setScheduler(std::unique_ptr< storm::storage::Scheduler< ValueType > > &&scheduler)
ExplicitQuantitativeCheckResult & operator=(ExplicitQuantitativeCheckResult &&other)=default
storm::solver::SolutionBounds< ExtendedValueType > const & getSolutionBounds() const
Retrieves both bounds at once, either of which may be unset.
bool hasLowerBounds() const
Retrieves whether sound lower resp.
vector_type const & getLowerBoundVector() const
Retrieves the sound lower resp.
virtual std::unique_ptr< CheckResult > compareAgainstBound(storm::logic::ComparisonType comparisonType, ValueType const &bound) const override
storm::storage::BitVector const & getStates() const
Retrieves the states this result holds values for.
virtual ExtendedValueType sum() const override
storm::utility::ExtendedValueType< ValueType > ExtendedValueType
A bit vector that is internally represented as a vector of 64-bit values.
This class defines which action is chosen in a particular state of a non-deterministic model.
nlohmann::basic_json< std::map, std::vector, std::string, bool, int64_t, uint64_t, ValueType > json
The aggregate of the values of a quantitative check result, together with the aggregate of each bound...
Sound lower and upper bounds on a solution vector.