source: icGREP/icgrep-devel/cudd-2.5.1/RELEASE.NOTES @ 4981

Last change on this file since 4981 was 4597, checked in by nmedfort, 4 years ago

Upload of the CUDD library.

File size: 5.7 KB
RevLine 
[4597]1Release 2.5.1 of Cudd improves support for multi-threaded applications.
2Specifically, an application may now register a callback function that
3is called from time to time to check whether computation should be
4terminated because another thread has found the result.
5
6The C++ interface allows the application to register variable names with
7the manager and implements operator<< for BDDs.  The interfaces of
8SolveEqn and VerifySol now take std::vectors instead of plain arrays.
9
10Fixed a few bugs in CUDD and a bug in the mtr package.
11
12Added const qualifiers to dumping function interfaces
13(Cudd_DumpDot,...).
14
15The Makefile now supports gmake's -j option.  Change "@+" back to "@" if
16this causes problems with your make program.
17
18Buggy documentation that was shipped with 2.5.0 has been fixed.
19
20New functions:
21
22extern int Cudd_bddIsVar(DdManager * dd, DdNode * f);
23
24extern void Cudd_RegisterTerminationCallback(DdManager *unique,
25
26extern void Cudd_UnregisterTerminationCallback(DdManager *unique);
27
28extern void Cudd_SetApplicationHook(DdManager *dd, void * value);
29
30extern void * Cudd_ReadApplicationHook(DdManager *dd);
31
32extern char * Cudd_FactoredFormString(DdManager *dd, DdNode *f, char const * const * inames);
33
34Releas 2.5.0 of Cudd introduces the ability to set timeouts.  The
35function that is interrupted returns NULL (which the application must
36be prepared to handle,) but the BDDs are uncorrupted and the invoking
37program can continue to use the manager.
38
39In addition, reordering is now aware of timeouts, so that it gives up
40when a timeout is approaching to give the invoking program a chance to
41obtain some results.
42
43The response time to the timeout is not immediate, though most of the time
44it is well below one second.  Checking for timeouts has a small overhead.
45In experiments, less than 1% has been observed on average.
46
47Creation of BDD managers with many variables (e.g., tens or hundreds
48of thousands) is now much more efficient.  Computing small supports of
49BDDs when there are many variables is also much more efficient, but
50this has been at the cost of separating the function for BDDs and ADDs
51(Cudd_Support) from that for ZDDs (Cudd_zddSupport).
52
53The C++ interface has undergone a major upgrade.
54
55The handling of variable gruops in reordering has been much improved.
56(Thanks to Arie Gurfinkel for a very detailed bug report!)  A handful
57of other bugs have been fixed as well.
58
59
60New Functions:
61
62unsigned long Cudd_ReadStartTime(DdManager *unique);
63
64unsigned long Cudd_ReadElapsedTime(DdManager *unique);
65
66void Cudd_SetStartTime(DdManager *unique, unsigned long st);
67
68void Cudd_ResetStartTime(DdManager *unique);
69
70unsigned long Cudd_ReadTimeLimit(DdManager *unique);
71
72void Cudd_SetTimeLimit(DdManager *unique, unsigned long tl);
73
74void Cudd_UpdateTimeLimit(DdManager * unique);
75
76void Cudd_IncreaseTimeLimit(DdManager * unique, unsigned long increase);
77
78void Cudd_UnsetTimeLimit(DdManager *unique);
79
80int Cudd_TimeLimited(DdManager *unique);
81
82unsigned int Cudd_ReadMaxReorderings (DdManager *dd);
83
84void Cudd_SetMaxReorderings (DdManager *dd, unsigned int mr);
85
86unsigned int Cudd_ReadOrderRandomization(DdManager * dd);
87
88void Cudd_SetOrderRandomization(DdManager * dd, unsigned int factor);
89
90int Cudd_PrintGroupedOrder(DdManager * dd, const char *str, void *data);
91
92int Cudd_EnableOrderingMonitoring(DdManager *dd);
93
94int Cudd_DisableOrderingMonitoring(DdManager *dd);
95
96int Cudd_OrderingMonitoring(DdManager *dd);
97
98DdNode * Cudd_bddExistAbstractLimit(DdManager * manager, DdNode * f, DdNode * cube, unsigned int limit);
99
100DdNode * Cudd_bddIteLimit (DdManager *dd, DdNode *f, DdNode *g, DdNode *h, unsigned int limit);
101
102DdNode * Cudd_bddOrLimit (DdManager *dd, DdNode *f, DdNode *g, unsigned int limit);
103
104DdNode * Cudd_bddXnorLimit (DdManager *dd, DdNode *f, DdNode *g, unsigned int limit);
105
106int Cudd_CheckCube (DdManager *dd, DdNode *g);
107
108DdNode * Cudd_bddMaximallyExpand(DdManager *dd, DdNode *lb, DdNode *ub, DdNode *f);
109
110DdNode * Cudd_bddLargestPrimeUnate(DdManager *dd , DdNode *f, DdNode *phaseBdd);
111
112int Cudd_Reserve(DdManager *manager, int amount);
113
114int Cudd_SupportIndices(DdManager * dd, DdNode * f, int **indices);
115
116int Cudd_VectorSupportIndices(DdManager * dd, DdNode ** F, int n, int **indices);
117
118DdNode * Cudd_zddSupport(DdManager * dd, DdNode * f);
119
120
121Changed prototypes:
122
123unsigned int Cudd_ReadReorderings (DdManager *dd);
124
125----------------------------------------------------------------------
126
127Release 2.4.2 of Cudd features several bug fixes.  The most important
128are those that prevented Cudd from making full use of up to 4 GB of
129memory when using 32-bit pointers.  A handful of bugs were discovered by
130Coverity.  (Thanks to Christian Stangier!)
131
132This release can be compiled with either 64-bit pointers or 32-bit
133pointers on x86_64 platforms if sizeof(long) = sizeof(void *) = 8 and
134sizeof(int) = 4.  This is known as the LP64 model.  For 32-bit pointers,
135one usually needs supplementary libraries.  On Ubuntu and Debian Linux,
136one needs g++-multilib, which can be installed with
137"apt-get install g++-multilib."
138
139Added functions
140
141DdNode *Cudd_Inequality (DdManager * dd, int  N, int c, DdNode ** x,
142DdNode ** y);
143
144DdNode * Cudd_Disequality (DdManager * dd, int  N, int c, DdNode ** x,
145DdNode ** y);
146
147DdNode * Cudd_bddInterval (DdManager * dd, int  N, DdNode ** x,
148unsigned int lowerB, unsigned int upperB);
149
150Changed prototypes:
151
152int Cudd_DumpBlif (DdManager *dd, int n, DdNode **f, char
153**inames, char **onames, char *mname, FILE *fp, int mv);
154
155int Cudd_DumpBlifBody (DdManager *dd, int n, DdNode **f, char
156**inames, char **onames, FILE *fp, int mv);
157
158The additional parameter allows the caller to choose between plain blif
159and blif-MV.
160
161----------------------------------------------------------------------
162
163Release 2.4.1 of Cudd features one major change with respect to previous
164releases.  The licensing terms are now explicitly stated.
Note: See TracBrowser for help on using the repository browser.