@ -1,3 +1,4 @@ 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				# include  "storm/exceptions/NotSupportedException.h" 
  
			
		 
		
	
		
			
				 
				 
				# include  "storm/storage/expressions/ToDiceStringVisitor.h" 
  
				 
				 
				# include  "storm/storage/expressions/ToDiceStringVisitor.h" 
  
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				namespace  storm  {  
				 
				 
				namespace  storm  {  
			
		 
		
	
	
		
			
				
					
						
							 
						 
					
					
						
							 
						 
					
					
				 
				@ -105,11 +106,12 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " ) " ;  
				 
				 
				                    stream  < <  " ) " ;  
			
		 
		
	
		
			
				 
				 
				                    break ;  
				 
				 
				                    break ;  
			
		 
		
	
		
			
				 
				 
				                case  BinaryNumericalFunctionExpression : : OperatorType : : Modulo :  
				 
				 
				                case  BinaryNumericalFunctionExpression : : OperatorType : : Modulo :  
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " ( " ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    STORM_LOG_THROW ( expression . getSecondOperand ( ) - > isIntegerLiteralExpression ( ) ,  storm : : exceptions : : NotSupportedException ,  " Dice does not support modulo with nonconst rhs " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    STORM_LOG_THROW ( expression . getSecondOperand ( ) - > evaluateAsInt ( )  = =  2 ,  storm : : exceptions : : NotSupportedException ,  " Dice does not support modulo with rhs != 2 " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    stream  < <  " ( nth_bit(int( "  < <  nrBits  < <  " , "  < <  nrBits  < <  " ),  " ;  
			
		 
		
	
		
			
				 
				 
				                    expression . getFirstOperand ( ) - > accept ( * this ,  data ) ;  
				 
				 
				                    expression . getFirstOperand ( ) - > accept ( * this ,  data ) ;  
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " % " ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				                    expression . getSecondOperand ( ) - > accept ( * this ,  data ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " ) " ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    stream  < <  " )) " ;  
			
		 
		
	
		
			
				 
				 
				                    break ;  
				 
				 
				                    break ;  
			
		 
		
	
		
			
				 
				 
				                case  BinaryNumericalFunctionExpression : : OperatorType : : Max :  
				 
				 
				                case  BinaryNumericalFunctionExpression : : OperatorType : : Max :  
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " max( " ;  
				 
				 
				                    stream  < <  " max( " ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -132,11 +134,18 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        boost : : any  ToDiceStringVisitor : : visit ( BinaryRelationExpression  const &  expression ,  boost : : any  const &  data )  {  
				 
				 
				        boost : : any  ToDiceStringVisitor : : visit ( BinaryRelationExpression  const &  expression ,  boost : : any  const &  data )  {  
			
		 
		
	
		
			
				 
				 
				            switch  ( expression . getRelationType ( ) )  {  
				 
				 
				            switch  ( expression . getRelationType ( ) )  {  
			
		 
		
	
		
			
				 
				 
				                case  BinaryRelationExpression : : RelationType : : Equal :  
				 
				 
				                case  BinaryRelationExpression : : RelationType : : Equal :  
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " ( " ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				                    expression . getFirstOperand ( ) - > accept ( * this ,  data ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " == " ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				                    expression . getSecondOperand ( ) - > accept ( * this ,  data ) ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " ) " ;  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    if  ( expression . getFirstOperand ( ) - > isBinaryNumericalFunctionExpression ( ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        if  ( expression . getFirstOperand ( ) - > asBinaryNumericalFunctionExpression ( ) . getOperatorType ( )  = =  BinaryNumericalFunctionExpression : : OperatorType : : Modulo )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                            expression . getFirstOperand ( ) - > accept ( * this ,  data ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    }  else  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        stream  < <  " ( " ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        expression . getFirstOperand ( ) - > accept ( * this ,  data ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        stream  < <  " == " ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        expression . getSecondOperand ( ) - > accept ( * this ,  data ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        stream  < <  " ) " ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				                    break ;  
				 
				 
				                    break ;  
			
		 
		
	
		
			
				 
				 
				                case  BinaryRelationExpression : : RelationType : : NotEqual :  
				 
				 
				                case  BinaryRelationExpression : : RelationType : : NotEqual :  
			
		 
		
	
		
			
				 
				 
				                    stream  < <  " ( " ;  
				 
				 
				                    stream  < <  " ( " ;