| 
					
					
						
							
						
					
					
				 | 
				@ -100,7 +100,7 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				             * @param rewardModel The reward model that is to be built. | 
				 | 
				 | 
				             * @param rewardModel The reward model that is to be built. | 
			
		
		
	
		
			
				 | 
				 | 
				             * @return The explicit model that was given by the probabilistic program. | 
				 | 
				 | 
				             * @return The explicit model that was given by the probabilistic program. | 
			
		
		
	
		
			
				 | 
				 | 
				             */ | 
				 | 
				 | 
				             */ | 
			
		
		
	
		
			
				 | 
				 | 
				            static std::unique_ptr<storm::models::AbstractModel<ValueType>> translateProgram(storm::prism::Program program, storm::prism::RewardModel const& rewardModel = storm::prism::RewardModel(), std::string const& constantDefinitionString = "") { | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            static std::unique_ptr<storm::models::AbstractModel<ValueType>> translateProgram(storm::prism::Program program, std::string const& rewardModelName = "", std::string const& constantDefinitionString = "") { | 
			
		
		
	
		
			
				 | 
				 | 
				                // Start by defining the undefined constants in the model. | 
				 | 
				 | 
				                // Start by defining the undefined constants in the model. | 
			
		
		
	
		
			
				 | 
				 | 
				                // First, we need to parse the constant definition string. | 
				 | 
				 | 
				                // First, we need to parse the constant definition string. | 
			
		
		
	
		
			
				 | 
				 | 
				                std::map<std::string, storm::expressions::Expression> constantDefinitions = storm::utility::prism::parseConstantDefinitionString(program, constantDefinitionString); | 
				 | 
				 | 
				                std::map<std::string, storm::expressions::Expression> constantDefinitions = storm::utility::prism::parseConstantDefinitionString(program, constantDefinitionString); | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -116,6 +116,8 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                // all expressions in the program so we can then evaluate them without having to store the values of the | 
				 | 
				 | 
				                // all expressions in the program so we can then evaluate them without having to store the values of the | 
			
		
		
	
		
			
				 | 
				 | 
				                // constants in the state (i.e., valuation). | 
				 | 
				 | 
				                // constants in the state (i.e., valuation). | 
			
		
		
	
		
			
				 | 
				 | 
				                preparedProgram = preparedProgram.substituteConstants(); | 
				 | 
				 | 
				                preparedProgram = preparedProgram.substituteConstants(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                storm::prism::RewardModel const& rewardModel = rewardModelName != "" ? preparedProgram.getRewardModel(rewardModelName) : storm::prism::RewardModel(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 | 
			
		
		
	
		
			
				 | 
				 | 
				                ModelComponents modelComponents = buildModelComponents(preparedProgram, rewardModel); | 
				 | 
				 | 
				                ModelComponents modelComponents = buildModelComponents(preparedProgram, rewardModel); | 
			
		
		
	
		
			
				 | 
				 | 
				                 | 
				 | 
				 | 
				                 | 
			
		
		
	
		
			
				 | 
				 | 
				                std::unique_ptr<storm::models::AbstractModel<ValueType>> result; | 
				 | 
				 | 
				                std::unique_ptr<storm::models::AbstractModel<ValueType>> result; | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -527,6 +529,7 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                                     | 
				 | 
				 | 
				                                     | 
			
		
		
	
		
			
				 | 
				 | 
				                                    // Now add all rewards that match this choice. | 
				 | 
				 | 
				                                    // Now add all rewards that match this choice. | 
			
		
		
	
		
			
				 | 
				 | 
				                                    for (auto const& transitionReward : transitionRewards) { | 
				 | 
				 | 
				                                    for (auto const& transitionReward : transitionRewards) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        std::cout << transitionReward.getStatePredicateExpression() << std::endl; | 
			
		
		
	
		
			
				 | 
				 | 
				                                        if (transitionReward.getActionName() == "" && transitionReward.getStatePredicateExpression().evaluateAsBool(stateInformation.reachableStates.at(currentState))) { | 
				 | 
				 | 
				                                        if (transitionReward.getActionName() == "" && transitionReward.getStatePredicateExpression().evaluateAsBool(stateInformation.reachableStates.at(currentState))) { | 
			
		
		
	
		
			
				 | 
				 | 
				                                            stateToRewardMap[stateProbabilityPair.first] += eval.evaluate(transitionReward.getRewardValueExpression(),stateInformation.reachableStates.at(currentState)); | 
				 | 
				 | 
				                                            stateToRewardMap[stateProbabilityPair.first] += eval.evaluate(transitionReward.getRewardValueExpression(),stateInformation.reachableStates.at(currentState)); | 
			
		
		
	
		
			
				 | 
				 | 
				                                        } | 
				 | 
				 | 
				                                        } | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |