Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
CumulativeRewardFormula.h
Go to the documentation of this file.
1#ifndef STORM_LOGIC_CUMULATIVEREWARDFORMULA_H_
2#define STORM_LOGIC_CUMULATIVEREWARDFORMULA_H_
3
5
8
9namespace storm {
10namespace logic {
12 public:
14 boost::optional<RewardAccumulation> rewardAccumulation = boost::none);
15 CumulativeRewardFormula(std::vector<TimeBound> const& bounds, std::vector<TimeBoundReference> const& timeBoundReferences,
16 boost::optional<RewardAccumulation> rewardAccumulation = boost::none);
17
18 virtual ~CumulativeRewardFormula() = default;
19
20 virtual bool isCumulativeRewardFormula() const override;
21 virtual bool isRewardPathFormula() const override;
22
23 bool isMultiDimensional() const;
24 unsigned getDimension() const;
25
26 virtual boost::any accept(FormulaVisitor const& visitor, boost::any const& data) const override;
27
28 virtual void gatherReferencedRewardModels(std::set<std::string>& referencedRewardModels) const override;
29 virtual void gatherUsedVariables(std::set<storm::expressions::Variable>& usedVariables) const override;
30
31 virtual std::ostream& writeToStream(std::ostream& out, bool allowParentheses = false) const override;
32
34 TimeBoundReference const& getTimeBoundReference(unsigned i) const;
35
36 bool isBoundStrict() const;
37 bool isBoundStrict(unsigned i) const;
38 bool hasIntegerBound() const;
39 bool hasIntegerBound(unsigned i) const;
40
42 storm::expressions::Expression const& getBound(unsigned i) const;
43
44 template<typename ValueType>
45 ValueType getBound() const;
46
47 template<typename ValueType>
48 ValueType getBound(unsigned i) const;
49
50 template<typename ValueType>
51 ValueType getNonStrictBound() const;
52
53 std::vector<TimeBound> const& getBounds() const;
54
55 bool hasRewardAccumulation() const;
57 std::shared_ptr<CumulativeRewardFormula const> stripRewardAccumulation() const;
58
59 std::shared_ptr<CumulativeRewardFormula const> restrictToDimension(unsigned i) const;
60
61 private:
62 static void checkNoVariablesInBound(storm::expressions::Expression const& bound);
63
64 std::vector<TimeBoundReference> timeBoundReferences;
65 std::vector<TimeBound> bounds;
66 boost::optional<RewardAccumulation> rewardAccumulation;
67};
68} // namespace logic
69} // namespace storm
70
71#endif /* STORM_LOGIC_CUMULATIVEREWARDFORMULA_H_ */
TimeBoundReference const & getTimeBoundReference() const
std::shared_ptr< CumulativeRewardFormula const > stripRewardAccumulation() const
RewardAccumulation const & getRewardAccumulation() const
std::vector< TimeBound > const & getBounds() const
std::shared_ptr< CumulativeRewardFormula const > restrictToDimension(unsigned i) const
virtual bool isRewardPathFormula() const override
virtual void gatherReferencedRewardModels(std::set< std::string > &referencedRewardModels) const override
virtual void gatherUsedVariables(std::set< storm::expressions::Variable > &usedVariables) const override
storm::expressions::Expression const & getBound() const
virtual ~CumulativeRewardFormula()=default
virtual boost::any accept(FormulaVisitor const &visitor, boost::any const &data) const override
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
virtual bool isCumulativeRewardFormula() const override
ValueType getBound(unsigned i) const
LabParser.cpp.
Definition cli.cpp:18