You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.8 KiB

  1. /*
  2. * RewardModel.cpp
  3. *
  4. * Created on: 12.01.2013
  5. * Author: Christian Dehnert
  6. */
  7. #include <sstream>
  8. #include "RewardModel.h"
  9. namespace storm {
  10. namespace ir {
  11. RewardModel::RewardModel() : rewardModelName(), stateRewards(), transitionRewards() {
  12. // Nothing to do here.
  13. }
  14. RewardModel::RewardModel(std::string const& rewardModelName, std::vector<storm::ir::StateReward> const& stateRewards, std::vector<storm::ir::TransitionReward> const& transitionRewards) : rewardModelName(rewardModelName), stateRewards(stateRewards), transitionRewards(transitionRewards) {
  15. // Nothing to do here.
  16. }
  17. std::string RewardModel::toString() const {
  18. std::stringstream result;
  19. result << "rewards \"" << rewardModelName << "\"" << std::endl;
  20. for (auto const& reward : stateRewards) {
  21. result << reward.toString() << std::endl;
  22. }
  23. for (auto const& reward : transitionRewards) {
  24. result << reward.toString() << std::endl;
  25. }
  26. result << "endrewards" << std::endl;
  27. return result.str();
  28. }
  29. bool RewardModel::hasStateRewards() const {
  30. return this->stateRewards.size() > 0;
  31. }
  32. std::vector<storm::ir::StateReward> const& RewardModel::getStateRewards() const {
  33. return this->stateRewards;
  34. }
  35. bool RewardModel::hasTransitionRewards() const {
  36. return this->transitionRewards.size() > 0;
  37. }
  38. std::vector<storm::ir::TransitionReward> const& RewardModel::getTransitionRewards() const {
  39. return this->transitionRewards;
  40. }
  41. } // namespace ir
  42. } // namespace storm