| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -23,10 +23,10 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template<typename RationalType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        bool ExprtkExpressionEvaluatorBase<RationalType>::asBool(Expression const& expression) const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            BaseExpression const* expressionPtr = expression.getBaseExpressionPointer().get(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto const& expressionPair = this->compiledExpressions.find(expression.getBaseExpressionPointer().get()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::shared_ptr<BaseExpression const> expressionPtr = expression.getBaseExpressionPointer(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto const& expressionPair = this->compiledExpressions.find(expression.getBaseExpressionPointer()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (expressionPair == this->compiledExpressions.end()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CompiledExpressionType const& compiledExpression = this->getCompiledExpression(expressionPtr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CompiledExpressionType const& compiledExpression = this->getCompiledExpression(expression); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return compiledExpression.value() == ValueType(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return expressionPair->second.value() == ValueType(1); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -34,22 +34,22 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template<typename RationalType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        int_fast64_t ExprtkExpressionEvaluatorBase<RationalType>::asInt(Expression const& expression) const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            BaseExpression const* expressionPtr = expression.getBaseExpressionPointer().get(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto const& expressionPair = this->compiledExpressions.find(expression.getBaseExpressionPointer().get()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::shared_ptr<BaseExpression const> expressionPtr = expression.getBaseExpressionPointer(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto const& expressionPair = this->compiledExpressions.find(expression.getBaseExpressionPointer()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (expressionPair == this->compiledExpressions.end()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CompiledExpressionType const& compiledExpression = this->getCompiledExpression(expressionPtr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CompiledExpressionType const& compiledExpression = this->getCompiledExpression(expression); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return static_cast<int_fast64_t>(compiledExpression.value()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return static_cast<int_fast64_t>(expressionPair->second.value()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template<typename RationalType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        typename ExprtkExpressionEvaluatorBase<RationalType>::CompiledExpressionType& ExprtkExpressionEvaluatorBase<RationalType>::getCompiledExpression(BaseExpression const* expression) const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::pair<CacheType::iterator, bool> result = this->compiledExpressions.emplace(expression, CompiledExpressionType()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        typename ExprtkExpressionEvaluatorBase<RationalType>::CompiledExpressionType& ExprtkExpressionEvaluatorBase<RationalType>::getCompiledExpression(storm::expressions::Expression const& expression) const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::pair<CacheType::iterator, bool> result = this->compiledExpressions.emplace(expression.getBaseExpressionPointer(), CompiledExpressionType()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            CompiledExpressionType& compiledExpression = result.first->second; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            compiledExpression.register_symbol_table(symbolTable); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            bool parsingOk = parser.compile(ToExprtkStringVisitor().toString(expression), compiledExpression); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            STORM_LOG_ASSERT(parsingOk, "Expression was not properly parsed by ExprTk: " << *expression); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            STORM_LOG_ASSERT(parsingOk, "Expression was not properly parsed by ExprTk: " << expression); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return compiledExpression; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -73,10 +73,10 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        double ExprtkExpressionEvaluator::asRational(Expression const& expression) const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            BaseExpression const* expressionPtr = expression.getBaseExpressionPointer().get(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto const& expressionPair = this->compiledExpressions.find(expression.getBaseExpressionPointer().get()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::shared_ptr<BaseExpression const> expressionPtr = expression.getBaseExpressionPointer(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto const& expressionPair = this->compiledExpressions.find(expression.getBaseExpressionPointer()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (expressionPair == this->compiledExpressions.end()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CompiledExpressionType const& compiledExpression = this->getCompiledExpression(expressionPtr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                CompiledExpressionType const& compiledExpression = this->getCompiledExpression(expression); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return static_cast<double>(compiledExpression.value()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return static_cast<double>(expressionPair->second.value()); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |