| 
					
					
						
							
						
					
					
				 | 
				@ -2,7 +2,6 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				#define STORM_STORAGE_GEOMETRY_NATIVEPOLYTOPE_H_ | 
				 | 
				 | 
				#define STORM_STORAGE_GEOMETRY_NATIVEPOLYTOPE_H_ | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/storage/geometry/Polytope.h" | 
				 | 
				 | 
				#include "storm/storage/geometry/Polytope.h" | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/storage/expressions/Expressions.h" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/adapters/EigenAdapter.h" | 
				 | 
				 | 
				#include "storm/adapters/EigenAdapter.h" | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				namespace storm { | 
				 | 
				 | 
				namespace storm { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -125,8 +124,20 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                 */ | 
				 | 
				 | 
				                 */ | 
			
		
		
	
		
			
				 | 
				 | 
				                virtual std::pair<Point, bool> optimize(Point const& direction) const override; | 
				 | 
				 | 
				                virtual std::pair<Point, bool> optimize(Point const& direction) const override; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                virtual bool isNativePolytope() const override; | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                /*! | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 * declares one variable for each dimension and returns the obtained variables. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 * @param manager The expression manager that keeps track of the variables | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 * @param namePrefix The prefix that is prepanded to the variable index | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 */ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                virtual std::vector<storm::expressions::Variable> declareVariables(storm::expressions::ExpressionManager& manager, std::string const& namePrefix) const override; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                /*! | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 * returns the constrains defined by this polytope as an expression over the given variables | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 */ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                virtual std::vector<storm::expressions::Expression> getConstraints(storm::expressions::ExpressionManager const& manager, std::vector<storm::expressions::Variable> const& variables) const override; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                virtual bool isNativePolytope() const override; | 
			
		
		
	
		
			
				 | 
				 | 
				            private: | 
				 | 
				 | 
				            private: | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                // returns the vertices of this polytope as EigenVectors | 
				 | 
				 | 
				                // returns the vertices of this polytope as EigenVectors | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -136,12 +147,6 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                std::pair<EigenVector, bool> optimize(EigenVector const& direction) const; | 
				 | 
				 | 
				                std::pair<EigenVector, bool> optimize(EigenVector const& direction) const; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                // declares one variable for each constraint and returns the obtained variables. | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                std::vector<storm::expressions::Variable> declareVariables(storm::expressions::ExpressionManager& manager, std::string const& namePrefix) const; | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                // returns the constrains defined by this polytope as an expresseion | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                std::vector<storm::expressions::Expression> getConstraints(storm::expressions::ExpressionManager const& manager, std::vector<storm::expressions::Variable> const& variables) const; | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                //Stores whether the polytope is empty or not | 
				 | 
				 | 
				                //Stores whether the polytope is empty or not | 
			
		
		
	
		
			
				 | 
				 | 
				                mutable EmptyStatus emptyStatus; | 
				 | 
				 | 
				                mutable EmptyStatus emptyStatus; | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |