| 
					
					
						
							
						
					
					
				 | 
				@ -19,6 +19,7 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        template <typename ValueType> | 
				 | 
				 | 
				        template <typename ValueType> | 
			
		
		
	
		
			
				 | 
				 | 
				        Expression ValueTypeToExpression<ValueType>::toExpression(ValueType function) { | 
				 | 
				 | 
				        Expression ValueTypeToExpression<ValueType>::toExpression(ValueType function) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            function.simplify(); | 
			
		
		
	
		
			
				 | 
				 | 
				            auto varsFunction = function.gatherVariables(); | 
				 | 
				 | 
				            auto varsFunction = function.gatherVariables(); | 
			
		
		
	
		
			
				 | 
				 | 
				            for (auto var : varsFunction) { | 
				 | 
				 | 
				            for (auto var : varsFunction) { | 
			
		
		
	
		
			
				 | 
				 | 
				                auto varsManager = manager->getVariables(); | 
				 | 
				 | 
				                auto varsManager = manager->getVariables(); | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -36,7 +37,7 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                STORM_LOG_DEBUG("Expecting the denominator to be constant"); | 
				 | 
				 | 
				                STORM_LOG_DEBUG("Expecting the denominator to be constant"); | 
			
		
		
	
		
			
				 | 
				 | 
				            } | 
				 | 
				 | 
				            } | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            storm::expressions::Expression denominatorVal = manager->integer(std::stoi(storm::utility::to_string(denominator.constantPart()))); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            storm::expressions::Expression denominatorVal = manager->rational(std::stod(storm::utility::to_string(denominator.constantPart()))); | 
			
		
		
	
		
			
				 | 
				 | 
				            storm::expressions::Expression result; | 
				 | 
				 | 
				            storm::expressions::Expression result; | 
			
		
		
	
		
			
				 | 
				 | 
				            if (function.isConstant()) { | 
				 | 
				 | 
				            if (function.isConstant()) { | 
			
		
		
	
		
			
				 | 
				 | 
				                result = manager->integer(std::stoi(storm::utility::to_string(function.constantPart()))); | 
				 | 
				 | 
				                result = manager->integer(std::stoi(storm::utility::to_string(function.constantPart()))); | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -46,12 +47,12 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                for (auto itr = nominator.begin(); itr != nominator.end(); ++itr) { | 
				 | 
				 | 
				                for (auto itr = nominator.begin(); itr != nominator.end(); ++itr) { | 
			
		
		
	
		
			
				 | 
				 | 
				                    varsFunction.clear(); | 
				 | 
				 | 
				                    varsFunction.clear(); | 
			
		
		
	
		
			
				 | 
				 | 
				                    (*itr).gatherVariables(varsFunction); | 
				 | 
				 | 
				                    (*itr).gatherVariables(varsFunction); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                    // TODO: improve transformation from coefficient to expression
 | 
				 | 
				 | 
				                    // TODO: improve transformation from coefficient to expression
 | 
			
		
		
	
		
			
				 | 
				 | 
				                    storm::expressions::Expression nominatorPartExpr = manager->integer( | 
				 | 
				 | 
				                    storm::expressions::Expression nominatorPartExpr = manager->integer( | 
			
		
		
	
		
			
				 | 
				 | 
				                            std::stoi(storm::utility::to_string((*itr).coeff()))); | 
				 | 
				 | 
				                            std::stoi(storm::utility::to_string((*itr).coeff()))); | 
			
		
		
	
		
			
				 | 
				 | 
				                    for (auto var : varsFunction) { | 
				 | 
				 | 
				                    for (auto var : varsFunction) { | 
			
		
		
	
		
			
				 | 
				 | 
				                        auto degree = nominator.degree(var); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                        nominatorPartExpr = nominatorPartExpr * (manager->getVariable(var.name())^manager->integer(degree)); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        nominatorPartExpr = nominatorPartExpr * (manager->getVariable(var.name())^manager->integer((*itr).monomial()->exponentOfVariable(var))); | 
			
		
		
	
		
			
				 | 
				 | 
				                    } | 
				 | 
				 | 
				                    } | 
			
		
		
	
		
			
				 | 
				 | 
				                    if (varsFunction.size() >= 1) { | 
				 | 
				 | 
				                    if (varsFunction.size() >= 1) { | 
			
		
		
	
		
			
				 | 
				 | 
				                        result = result + nominatorPartExpr; | 
				 | 
				 | 
				                        result = result + nominatorPartExpr; | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |