Skip to content

Commit 61a4660

Browse files
fsomenziivmai
authored andcommitted
Import cudd-2.5.1.tar.gz
1 parent 6e1f43b commit 61a4660

40 files changed

+15105
-15720
lines changed

Makefile

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
# C++ compiler
1010
CXX = g++
11+
#CXX = clang++
1112
#CXX = icpc
1213
#CXX = ecpc
1314
#CXX = CC
@@ -25,9 +26,10 @@ CXXFLAGS =
2526
#CXXFLAGS = +a1
2627

2728
# C compiler used for all targets except optimize_dec, which always uses cc.
29+
CC = gcc
30+
#CC = clang
2831
#CC = cc
2932
#CC = /usr/local/opt/SUNWspro/bin/cc
30-
CC = gcc
3133
#CC = icc
3234
#CC = ecc
3335
#CC = /usr/ucb/cc
@@ -59,13 +61,13 @@ ICFLAGS = -g -O3
5961
# Linux
6062
#
6163
# Gcc 4.2.4 or higher on i686.
62-
XCFLAGS = -mtune=native -malign-double -DHAVE_IEEE_754 -DBSD
64+
#XCFLAGS = -mtune=native -malign-double -DHAVE_IEEE_754 -DBSD
6365
# Gcc 3.2.2 or higher on i686.
6466
#XCFLAGS = -mtune=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD
6567
# Gcc 2.8.1 on i686.
6668
#XCFLAGS = -mcpu=pentiumpro -malign-double -DHAVE_IEEE_754 -DBSD
6769
# Gcc 4.2.4 or higher on x86_64 (64-bit compilation)
68-
#XCFLAGS = -mtune=native -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8
70+
XCFLAGS = -mtune=native -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8
6971
# Gcc 4.2.4 or higher on x86_64 (32-bit compilation)
7072
#XCFLAGS = -m32 -mtune=native -malign-double -DHAVE_IEEE_754 -DBSD
7173
# Icc on i686 (older versions may not support -xHost).
@@ -208,7 +210,7 @@ DIRS = $(BDIRS) nanotrav
208210
.PHONY : check_leaks
209211
.PHONY : optimize_dec
210212
.PHONY : testcudd
211-
.PHONY : libobj
213+
.PHONY : objlib
212214
.PHONY : testobj
213215
.PHONY : testdddmp
214216
.PHONY : testmtr
@@ -220,7 +222,7 @@ DIRS = $(BDIRS) nanotrav
220222

221223
build:
222224
sh ./setup.sh
223-
@for dir in $(DIRS); do \
225+
@+for dir in $(DIRS); do \
224226
(cd $$dir; \
225227
echo Making $$dir ...; \
226228
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
@@ -230,78 +232,78 @@ nanotrav: build
230232

231233
check_leaks:
232234
sh ./setup.sh
233-
@for dir in mnemosyne $(DIRS); do \
235+
@+for dir in mnemosyne $(DIRS); do \
234236
(cd $$dir; \
235237
echo Making $$dir ...; \
236238
make CC=$(CC) RANLIB=$(RANLIB) MFLAG=$(MFLAG) MNEMLIB=$(MNEMLIB) ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" EXE="$(EXE)" )\
237239
done
238240

239241
optimize_dec:
240242
sh ./setup.sh
241-
@for dir in $(DIRS); do \
243+
@+for dir in $(DIRS); do \
242244
(cd $$dir; \
243245
echo Making $$dir ...; \
244246
make CC=$(CC) RANLIB=$(RANLIB) XCFLAGS="$(XCFLAGS)" LDFLAGS="$(LDFLAGS)" optimize_dec )\
245247
done
246248

247249
lint:
248250
sh ./setup.sh
249-
@for dir in $(DIRS) obj; do \
251+
@+for dir in $(DIRS) obj; do \
250252
(cd $$dir; \
251253
echo Making lint in $$dir ...; \
252254
make CC=$(CC) lint )\
253255
done
254256

255257
tags:
256258
sh ./setup.sh
257-
@for dir in $(DIRS) obj; do \
259+
@+for dir in $(DIRS) obj; do \
258260
(cd $$dir; \
259261
echo Making tags in $$dir ...; \
260262
make CC=$(CC) tags )\
261263
done
262264

263265
all:
264266
sh ./setup.sh
265-
@for dir in $(DIRS); do \
267+
@+for dir in $(DIRS); do \
266268
(cd $$dir; \
267269
echo Making all in $$dir ...; \
268270
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" all )\
269271
done
270272

271273
testcudd:
272274
sh ./setup.sh
273-
@for dir in util st mtr epd; do \
275+
@+for dir in util st mtr epd; do \
274276
(cd $$dir; \
275277
echo Making $$dir ...; \
276278
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
277279
done
278-
@(cd cudd; \
280+
@+(cd cudd; \
279281
echo Making testcudd ...; \
280282
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testcudd$(EXE) )
281283

282284
objlib:
283285
sh ./setup.sh
284-
@for dir in $(BDIRS); do \
286+
@+for dir in $(BDIRS); do \
285287
(cd $$dir; \
286288
echo Making $$dir ...; \
287289
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
288290
done
289-
@(cd obj; \
291+
@+(cd obj; \
290292
echo Making obj ...; \
291293
make CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )
292294

293295
testobj: objlib
294-
@(cd obj; \
296+
@+(cd obj; \
295297
echo Making testobj ...; \
296298
make CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testobj$(EXE) )
297299

298300
testdddmp: build
299-
@(cd dddmp; \
301+
@+(cd dddmp; \
300302
echo Making testdddmp ...; \
301303
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testdddmp$(EXE) )
302304

303305
testmtr: build
304-
@(cd mtr; \
306+
@+(cd mtr; \
305307
echo Making testmtr ...; \
306308
make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testmtr$(EXE) )
307309

README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ nanotrav that uses mnemosyne may work.
159159

160160
DOCUMENTATION
161161

162-
Directory cudd-2.5.0/cudd/doc contains HTML documentation for the CUDD
162+
Directory cudd-2.5.1/cudd/doc contains HTML documentation for the CUDD
163163
package. The recommended starting point is cuddIntro.html. Documentation
164164
in both postscript(tm) format and plain text format is also provided.
165165
Documentation for the auxiliary libraries (except for the util library)

RELEASE.NOTES

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,37 @@
1-
Release 2.5.0 of Cudd introduces the ability to set timeouts. The
1+
Release 2.5.1 of Cudd improves support for multi-threaded applications.
2+
Specifically, an application may now register a callback function that
3+
is called from time to time to check whether computation should be
4+
terminated because another thread has found the result.
5+
6+
The C++ interface allows the application to register variable names with
7+
the manager and implements operator<< for BDDs. The interfaces of
8+
SolveEqn and VerifySol now take std::vectors instead of plain arrays.
9+
10+
Fixed a few bugs in CUDD and a bug in the mtr package.
11+
12+
Added const qualifiers to dumping function interfaces
13+
(Cudd_DumpDot,...).
14+
15+
The Makefile now supports gmake's -j option. Change "@+" back to "@" if
16+
this causes problems with your make program.
17+
18+
Buggy documentation that was shipped with 2.5.0 has been fixed.
19+
20+
New functions:
21+
22+
extern int Cudd_bddIsVar(DdManager * dd, DdNode * f);
23+
24+
extern void Cudd_RegisterTerminationCallback(DdManager *unique,
25+
26+
extern void Cudd_UnregisterTerminationCallback(DdManager *unique);
27+
28+
extern void Cudd_SetApplicationHook(DdManager *dd, void * value);
29+
30+
extern void * Cudd_ReadApplicationHook(DdManager *dd);
31+
32+
extern char * Cudd_FactoredFormString(DdManager *dd, DdNode *f, char const * const * inames);
33+
34+
Releas 2.5.0 of Cudd introduces the ability to set timeouts. The
235
function that is interrupted returns NULL (which the application must
336
be prepared to handle,) but the BDDs are uncorrupted and the invoking
437
program can continue to use the manager.

cudd/cudd.h

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
5151
POSSIBILITY OF SUCH DAMAGE.]
5252
53-
Revision [$Id: cudd.h,v 1.180 2012/02/05 01:07:18 fabio Exp $]
53+
Revision [$Id: cudd.h,v 1.182 2015/01/03 18:21:34 fabio Exp $]
5454
5555
******************************************************************************/
5656

@@ -72,7 +72,7 @@ extern "C" {
7272
/* Constant declarations */
7373
/*---------------------------------------------------------------------------*/
7474

75-
#define CUDD_VERSION "2.5.0"
75+
#define CUDD_VERSION "2.5.1"
7676

7777
#ifndef SIZEOF_VOID_P
7878
#define SIZEOF_VOID_P 4
@@ -219,6 +219,7 @@ typedef enum {
219219
CUDD_TOO_MANY_NODES,
220220
CUDD_MAX_MEM_EXCEEDED,
221221
CUDD_TIMEOUT_EXPIRED,
222+
CUDD_TERMINATION,
222223
CUDD_INVALID_ARG,
223224
CUDD_INTERNAL_ERROR
224225
} Cudd_ErrorType;
@@ -311,6 +312,8 @@ typedef DdNode * (*DD_CTFP1)(DdManager *, DdNode *);
311312
typedef void (*DD_OOMFP)(long);
312313
/* Type of comparison function for qsort. */
313314
typedef int (*DD_QSFP)(const void *, const void *);
315+
/* Type of termination handler. */
316+
typedef int (*DD_THFP)(const void *);
314317

315318
/*---------------------------------------------------------------------------*/
316319
/* Variable declarations */
@@ -620,6 +623,7 @@ extern DdNode * Cudd_addNewVar (DdManager *dd);
620623
extern DdNode * Cudd_addNewVarAtLevel (DdManager *dd, int level);
621624
extern DdNode * Cudd_bddNewVar (DdManager *dd);
622625
extern DdNode * Cudd_bddNewVarAtLevel (DdManager *dd, int level);
626+
extern int Cudd_bddIsVar(DdManager * dd, DdNode * f);
623627
extern DdNode * Cudd_addIthVar (DdManager *dd, int i);
624628
extern DdNode * Cudd_bddIthVar (DdManager *dd, int i);
625629
extern DdNode * Cudd_zddIthVar (DdManager *dd, int i);
@@ -636,6 +640,8 @@ extern void Cudd_UpdateTimeLimit(DdManager * unique);
636640
extern void Cudd_IncreaseTimeLimit(DdManager * unique, unsigned long increase);
637641
extern void Cudd_UnsetTimeLimit(DdManager *unique);
638642
extern int Cudd_TimeLimited(DdManager *unique);
643+
extern void Cudd_RegisterTerminationCallback(DdManager *unique, DD_THFP callback, void * callback_arg);
644+
extern void Cudd_UnregisterTerminationCallback(DdManager *unique);
639645
extern void Cudd_AutodynEnable (DdManager *unique, Cudd_ReorderingType method);
640646
extern void Cudd_AutodynDisable (DdManager *unique);
641647
extern int Cudd_ReorderingStatus (DdManager *unique, Cudd_ReorderingType *method);
@@ -748,6 +754,8 @@ extern int Cudd_PrintGroupedOrder(DdManager * dd, const char *str, void *data);
748754
extern int Cudd_EnableOrderingMonitoring(DdManager *dd);
749755
extern int Cudd_DisableOrderingMonitoring(DdManager *dd);
750756
extern int Cudd_OrderingMonitoring(DdManager *dd);
757+
extern void Cudd_SetApplicationHook(DdManager *dd, void * value);
758+
extern void * Cudd_ReadApplicationHook(DdManager *dd);
751759
extern Cudd_ErrorType Cudd_ReadErrorCode (DdManager *dd);
752760
extern void Cudd_ClearErrorCode (DdManager *dd);
753761
extern FILE * Cudd_ReadStdout (DdManager *dd);
@@ -888,12 +896,13 @@ extern DdTlcInfo * Cudd_FindTwoLiteralClauses (DdManager * dd, DdNode * f);
888896
extern int Cudd_PrintTwoLiteralClauses (DdManager * dd, DdNode * f, char **names, FILE *fp);
889897
extern int Cudd_ReadIthClause (DdTlcInfo * tlc, int i, DdHalfWord *var1, DdHalfWord *var2, int *phase1, int *phase2);
890898
extern void Cudd_tlcInfoFree (DdTlcInfo * t);
891-
extern int Cudd_DumpBlif (DdManager *dd, int n, DdNode **f, char **inames, char **onames, char *mname, FILE *fp, int mv);
892-
extern int Cudd_DumpBlifBody (DdManager *dd, int n, DdNode **f, char **inames, char **onames, FILE *fp, int mv);
893-
extern int Cudd_DumpDot (DdManager *dd, int n, DdNode **f, char **inames, char **onames, FILE *fp);
894-
extern int Cudd_DumpDaVinci (DdManager *dd, int n, DdNode **f, char **inames, char **onames, FILE *fp);
895-
extern int Cudd_DumpDDcal (DdManager *dd, int n, DdNode **f, char **inames, char **onames, FILE *fp);
896-
extern int Cudd_DumpFactoredForm (DdManager *dd, int n, DdNode **f, char **inames, char **onames, FILE *fp);
899+
extern int Cudd_DumpBlif (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, char *mname, FILE *fp, int mv);
900+
extern int Cudd_DumpBlifBody (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, FILE *fp, int mv);
901+
extern int Cudd_DumpDot (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, FILE *fp);
902+
extern int Cudd_DumpDaVinci (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, FILE *fp);
903+
extern int Cudd_DumpDDcal (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, FILE *fp);
904+
extern int Cudd_DumpFactoredForm (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, FILE *fp);
905+
extern char * Cudd_FactoredFormString(DdManager *dd, DdNode *f, char const * const * inames);
897906
extern DdNode * Cudd_bddConstrain (DdManager *dd, DdNode *f, DdNode *c);
898907
extern DdNode * Cudd_bddRestrict (DdManager *dd, DdNode *f, DdNode *c);
899908
extern DdNode * Cudd_bddNPAnd (DdManager *dd, DdNode *f, DdNode *c);
@@ -1044,7 +1053,7 @@ extern DdGen * Cudd_zddFirstPath (DdManager *zdd, DdNode *f, int **path);
10441053
extern int Cudd_zddNextPath (DdGen *gen, int **path);
10451054
extern char * Cudd_zddCoverPathToString (DdManager *zdd, int *path, char *str);
10461055
extern DdNode * Cudd_zddSupport(DdManager * dd, DdNode * f);
1047-
extern int Cudd_zddDumpDot (DdManager *dd, int n, DdNode **f, char **inames, char **onames, FILE *fp);
1056+
extern int Cudd_zddDumpDot (DdManager *dd, int n, DdNode **f, char const * const *inames, char const * const *onames, FILE *fp);
10481057
extern int Cudd_bddSetPiVar (DdManager *dd, int index);
10491058
extern int Cudd_bddSetPsVar (DdManager *dd, int index);
10501059
extern int Cudd_bddSetNsVar (DdManager *dd, int index);

0 commit comments

Comments
 (0)