Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
RewardModelBuilder.cpp
Go to the documentation of this file.
2
4
6
9
10namespace storm {
11namespace builder {
12
13template<typename ValueType>
15 : rewardModelName(rewardModelInformation.getName()),
16 stateRewards(rewardModelInformation.hasStateRewards()),
17 stateActionRewards(rewardModelInformation.hasStateActionRewards()),
18 stateRewardVector(),
19 stateActionRewardVector() {
20 STORM_LOG_THROW(!rewardModelInformation.hasTransitionRewards(), storm::exceptions::InvalidArgumentException, "Unable to treat transition rewards.");
21}
22
23template<typename ValueType>
24storm::models::sparse::StandardRewardModel<ValueType> RewardModelBuilder<ValueType>::build(uint_fast64_t rowCount, uint_fast64_t, uint_fast64_t rowGroupCount) {
25 std::optional<std::vector<ValueType>> optionalStateRewardVector;
26 if (hasStateRewards()) {
27 stateRewardVector.resize(rowGroupCount);
28 optionalStateRewardVector = std::move(stateRewardVector);
29 }
30
31 std::optional<std::vector<ValueType>> optionalStateActionRewardVector;
32 if (hasStateActionRewards()) {
33 stateActionRewardVector.resize(rowCount);
34 optionalStateActionRewardVector = std::move(stateActionRewardVector);
35 }
36
37 return storm::models::sparse::StandardRewardModel<ValueType>(std::move(optionalStateRewardVector), std::move(optionalStateActionRewardVector));
38}
39
40template<typename ValueType>
41std::string const& RewardModelBuilder<ValueType>::getName() const {
42 return rewardModelName;
43}
44
45template<typename ValueType>
47 stateRewardVector.push_back(value);
48}
49
50template<typename ValueType>
52 stateActionRewardVector.push_back(value);
53}
54
55template<typename ValueType>
57 return stateRewards;
58}
59
60template<typename ValueType>
62 return stateActionRewards;
63}
64
65template class RewardModelBuilder<double>;
69
70} // namespace builder
71} // namespace storm
A structure that is used to keep track of a reward model currently being built.
void addStateActionReward(ValueType const &value)
RewardModelBuilder(RewardModelInformation const &rewardModelInformation)
void addStateReward(ValueType const &value)
storm::models::sparse::StandardRewardModel< ValueType > build(uint_fast64_t rowCount, uint_fast64_t columnCount, uint_fast64_t rowGroupCount)
std::string const & getName() const
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
LabParser.cpp.
Definition cli.cpp:18