11 changed files with 162 additions and 16 deletions
			
			
		- 
					6src/storm/logic/BoundedUntilFormula.cpp
 - 
					6src/storm/logic/CloneVisitor.cpp
 - 
					22src/storm/logic/CumulativeRewardFormula.cpp
 - 
					9src/storm/logic/CumulativeRewardFormula.h
 - 
					13src/storm/logic/EventuallyFormula.cpp
 - 
					8src/storm/logic/EventuallyFormula.h
 - 
					47src/storm/logic/RewardAccumulation.cpp
 - 
					24src/storm/logic/RewardAccumulation.h
 - 
					20src/storm/logic/TimeBoundType.h
 - 
					10src/storm/logic/TotalRewardFormula.cpp
 - 
					13src/storm/logic/TotalRewardFormula.h
 
@ -0,0 +1,47 @@ | 
				
			|||
#include "storm/logic/RewardAccumulation.h"
 | 
				
			|||
 | 
				
			|||
namespace storm { | 
				
			|||
    namespace logic { | 
				
			|||
         | 
				
			|||
        RewardAccumulation::RewardAccumulation(bool steps, bool time, bool exit) : steps(steps), time(time), exit(exit){ | 
				
			|||
            // Intentionally left empty
 | 
				
			|||
        } | 
				
			|||
         | 
				
			|||
        bool RewardAccumulation::isStepsSet() const { | 
				
			|||
            return steps; | 
				
			|||
        } | 
				
			|||
         | 
				
			|||
        bool RewardAccumulation::isTimeSet() const { | 
				
			|||
            return time; | 
				
			|||
        } | 
				
			|||
         | 
				
			|||
        bool RewardAccumulation::isExitSet() const { | 
				
			|||
            return exit; | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        std::ostream& operator<<(std::ostream& out, RewardAccumulation const& acc) { | 
				
			|||
            bool hasEntry = false; | 
				
			|||
            if (acc.isStepsSet()) { | 
				
			|||
                out << "steps"; | 
				
			|||
                hasEntry = true; | 
				
			|||
            } | 
				
			|||
            if (acc.isTimeSet()) { | 
				
			|||
                if (hasEntry) { | 
				
			|||
                    out << ", "; | 
				
			|||
                } | 
				
			|||
                out << "time"; | 
				
			|||
                hasEntry = true; | 
				
			|||
            } | 
				
			|||
            if (acc.isExitSet()) { | 
				
			|||
                if (hasEntry) { | 
				
			|||
                    out << ", "; | 
				
			|||
                } | 
				
			|||
                out << "exit"; | 
				
			|||
                hasEntry = true; | 
				
			|||
            } | 
				
			|||
             | 
				
			|||
            return out; | 
				
			|||
        } | 
				
			|||
         | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,24 @@ | 
				
			|||
#pragma once | 
				
			|||
#include <iostream> | 
				
			|||
 | 
				
			|||
namespace storm { | 
				
			|||
    namespace logic { | 
				
			|||
         | 
				
			|||
        class RewardAccumulation { | 
				
			|||
        public: | 
				
			|||
            RewardAccumulation(bool steps, bool time, bool exit); | 
				
			|||
            RewardAccumulation(RewardAccumulation const& other) = default; | 
				
			|||
             | 
				
			|||
            bool isStepsSet() const; // If set, choice rewards and transition rewards are accumulated upon taking the transition | 
				
			|||
            bool isTimeSet() const; // If set, state rewards are accumulated over time (assuming 0 time passes in discrete-time model states) | 
				
			|||
            bool isExitSet() const; // If set, state rewards are accumulated upon exiting the state | 
				
			|||
             | 
				
			|||
        private: | 
				
			|||
            bool time, steps, exit; | 
				
			|||
        }; | 
				
			|||
 | 
				
			|||
        std::ostream& operator<<(std::ostream& out, RewardAccumulation const& acc); | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue