You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							131 lines
						
					
					
						
							4.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							131 lines
						
					
					
						
							4.6 KiB
						
					
					
				
								Release 2.5.0 of Cudd introduces the ability to set timeouts.  The
							 | 
						|
								function that is interrupted returns NULL (which the application must
							 | 
						|
								be prepared to handle,) but the BDDs are uncorrupted and the invoking
							 | 
						|
								program can continue to use the manager.
							 | 
						|
								
							 | 
						|
								In addition, reordering is now aware of timeouts, so that it gives up
							 | 
						|
								when a timeout is approaching to give the invoking program a chance to
							 | 
						|
								obtain some results.
							 | 
						|
								
							 | 
						|
								The response time to the timeout is not immediate, though most of the time
							 | 
						|
								it is well below one second.  Checking for timeouts has a small overhead.
							 | 
						|
								In experiments, less than 1% has been observed on average.
							 | 
						|
								
							 | 
						|
								Creation of BDD managers with many variables (e.g., tens or hundreds
							 | 
						|
								of thousands) is now much more efficient.  Computing small supports of
							 | 
						|
								BDDs when there are many variables is also much more efficient, but
							 | 
						|
								this has been at the cost of separating the function for BDDs and ADDs
							 | 
						|
								(Cudd_Support) from that for ZDDs (Cudd_zddSupport).
							 | 
						|
								
							 | 
						|
								The C++ interface has undergone a major upgrade.
							 | 
						|
								
							 | 
						|
								The handling of variable gruops in reordering has been much improved.
							 | 
						|
								(Thanks to Arie Gurfinkel for a very detailed bug report!)  A handful
							 | 
						|
								of other bugs have been fixed as well.
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								New Functions:
							 | 
						|
								
							 | 
						|
								unsigned long Cudd_ReadStartTime(DdManager *unique);
							 | 
						|
								
							 | 
						|
								unsigned long Cudd_ReadElapsedTime(DdManager *unique);
							 | 
						|
								
							 | 
						|
								void Cudd_SetStartTime(DdManager *unique, unsigned long st);
							 | 
						|
								
							 | 
						|
								void Cudd_ResetStartTime(DdManager *unique);
							 | 
						|
								
							 | 
						|
								unsigned long Cudd_ReadTimeLimit(DdManager *unique);
							 | 
						|
								
							 | 
						|
								void Cudd_SetTimeLimit(DdManager *unique, unsigned long tl);
							 | 
						|
								
							 | 
						|
								void Cudd_UpdateTimeLimit(DdManager * unique);
							 | 
						|
								
							 | 
						|
								void Cudd_IncreaseTimeLimit(DdManager * unique, unsigned long increase);
							 | 
						|
								
							 | 
						|
								void Cudd_UnsetTimeLimit(DdManager *unique);
							 | 
						|
								
							 | 
						|
								int Cudd_TimeLimited(DdManager *unique);
							 | 
						|
								
							 | 
						|
								unsigned int Cudd_ReadMaxReorderings (DdManager *dd);
							 | 
						|
								
							 | 
						|
								void Cudd_SetMaxReorderings (DdManager *dd, unsigned int mr);
							 | 
						|
								
							 | 
						|
								unsigned int Cudd_ReadOrderRandomization(DdManager * dd);
							 | 
						|
								
							 | 
						|
								void Cudd_SetOrderRandomization(DdManager * dd, unsigned int factor);
							 | 
						|
								
							 | 
						|
								int Cudd_PrintGroupedOrder(DdManager * dd, const char *str, void *data);
							 | 
						|
								
							 | 
						|
								int Cudd_EnableOrderingMonitoring(DdManager *dd);
							 | 
						|
								
							 | 
						|
								int Cudd_DisableOrderingMonitoring(DdManager *dd);
							 | 
						|
								
							 | 
						|
								int Cudd_OrderingMonitoring(DdManager *dd);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddExistAbstractLimit(DdManager * manager, DdNode * f, DdNode * cube, unsigned int limit);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddIteLimit (DdManager *dd, DdNode *f, DdNode *g, DdNode *h, unsigned int limit);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddOrLimit (DdManager *dd, DdNode *f, DdNode *g, unsigned int limit);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddXnorLimit (DdManager *dd, DdNode *f, DdNode *g, unsigned int limit);
							 | 
						|
								
							 | 
						|
								int Cudd_CheckCube (DdManager *dd, DdNode *g);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddMaximallyExpand(DdManager *dd, DdNode *lb, DdNode *ub, DdNode *f);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddLargestPrimeUnate(DdManager *dd , DdNode *f, DdNode *phaseBdd);
							 | 
						|
								
							 | 
						|
								int Cudd_Reserve(DdManager *manager, int amount);
							 | 
						|
								
							 | 
						|
								int Cudd_SupportIndices(DdManager * dd, DdNode * f, int **indices);
							 | 
						|
								
							 | 
						|
								int Cudd_VectorSupportIndices(DdManager * dd, DdNode ** F, int n, int **indices);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_zddSupport(DdManager * dd, DdNode * f);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								Changed prototypes:
							 | 
						|
								
							 | 
						|
								unsigned int Cudd_ReadReorderings (DdManager *dd);
							 | 
						|
								
							 | 
						|
								----------------------------------------------------------------------
							 | 
						|
								
							 | 
						|
								Release 2.4.2 of Cudd features several bug fixes.  The most important
							 | 
						|
								are those that prevented Cudd from making full use of up to 4 GB of
							 | 
						|
								memory when using 32-bit pointers.  A handful of bugs were discovered by
							 | 
						|
								Coverity.  (Thanks to Christian Stangier!)
							 | 
						|
								
							 | 
						|
								This release can be compiled with either 64-bit pointers or 32-bit
							 | 
						|
								pointers on x86_64 platforms if sizeof(long) = sizeof(void *) = 8 and
							 | 
						|
								sizeof(int) = 4.  This is known as the LP64 model.  For 32-bit pointers,
							 | 
						|
								one usually needs supplementary libraries.  On Ubuntu and Debian Linux,
							 | 
						|
								one needs g++-multilib, which can be installed with
							 | 
						|
								"apt-get install g++-multilib."
							 | 
						|
								
							 | 
						|
								Added functions 
							 | 
						|
								
							 | 
						|
								DdNode *Cudd_Inequality (DdManager * dd, int  N, int c, DdNode ** x,
							 | 
						|
								DdNode ** y);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_Disequality (DdManager * dd, int  N, int c, DdNode ** x,
							 | 
						|
								DdNode ** y);
							 | 
						|
								
							 | 
						|
								DdNode * Cudd_bddInterval (DdManager * dd, int  N, DdNode ** x,
							 | 
						|
								unsigned int lowerB, unsigned int upperB);
							 | 
						|
								
							 | 
						|
								Changed prototypes:
							 | 
						|
								
							 | 
						|
								int Cudd_DumpBlif (DdManager *dd, int n, DdNode **f, char
							 | 
						|
								**inames, char **onames, char *mname, FILE *fp, int mv);
							 | 
						|
								
							 | 
						|
								int Cudd_DumpBlifBody (DdManager *dd, int n, DdNode **f, char
							 | 
						|
								**inames, char **onames, FILE *fp, int mv);
							 | 
						|
								
							 | 
						|
								The additional parameter allows the caller to choose between plain blif
							 | 
						|
								and blif-MV.
							 | 
						|
								
							 | 
						|
								----------------------------------------------------------------------
							 | 
						|
								
							 | 
						|
								Release 2.4.1 of Cudd features one major change with respect to previous
							 | 
						|
								releases.  The licensing terms are now explicitly stated.
							 |