Commit 5560011f by Alan Mishchenko

Extending extra library with additional ZDD-based procedures.

parent af62d29d
...@@ -1167,10 +1167,18 @@ SOURCE=.\src\bdd\extrab\extraBddKmap.c ...@@ -1167,10 +1167,18 @@ SOURCE=.\src\bdd\extrab\extraBddKmap.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\src\bdd\extrab\extraBddMaxMin.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddMisc.c SOURCE=.\src\bdd\extrab\extraBddMisc.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\src\bdd\extrab\extraBddSet.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddSymm.c SOURCE=.\src\bdd\extrab\extraBddSymm.c
# End Source File # End Source File
# Begin Source File # Begin Source File
......
...@@ -206,6 +206,44 @@ extern DdNode * extraBddTuples( DdManager * dd, DdNode * bVarsK, DdNode * b ...@@ -206,6 +206,44 @@ extern DdNode * extraBddTuples( DdManager * dd, DdNode * bVarsK, DdNode * b
#define ABC_PRB(dd,f) printf("%s = ", #f); Extra_bddPrint(dd,f); printf("\n") #define ABC_PRB(dd,f) printf("%s = ", #f); Extra_bddPrint(dd,f); printf("\n")
#endif #endif
/*=== extraMaxMin.c ==============================================================*/
/* maximal/minimimal */
extern DdNode * Extra_zddMaximal (DdManager *dd, DdNode *S);
extern DdNode * extraZddMaximal (DdManager *dd, DdNode *S);
extern DdNode * Extra_zddMinimal (DdManager *dd, DdNode *S);
extern DdNode * extraZddMinimal (DdManager *dd, DdNode *S);
/* maximal/minimal of the union of two sets of subsets */
extern DdNode * Extra_zddMaxUnion (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * extraZddMaxUnion (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * Extra_zddMinUnion (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * extraZddMinUnion (DdManager *dd, DdNode *S, DdNode *T);
/* dot/cross products */
extern DdNode * Extra_zddDotProduct (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * extraZddDotProduct (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * Extra_zddCrossProduct (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * extraZddCrossProduct (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * Extra_zddMaxDotProduct (DdManager *dd, DdNode *S, DdNode *T);
extern DdNode * extraZddMaxDotProduct (DdManager *dd, DdNode *S, DdNode *T);
/*=== extraBddSet.c ==============================================================*/
/* subset/supset operations */
extern DdNode * Extra_zddSubSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * extraZddSubSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * Extra_zddSupSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * extraZddSupSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * Extra_zddNotSubSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * extraZddNotSubSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * Extra_zddNotSupSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * extraZddNotSupSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * Extra_zddMaxNotSupSet (DdManager *dd, DdNode *X, DdNode *Y);
extern DdNode * extraZddMaxNotSupSet (DdManager *dd, DdNode *X, DdNode *Y);
/* check whether the empty combination belongs to the set of subsets */
extern int Extra_zddEmptyBelongs (DdManager *dd, DdNode* zS);
/* check whether the set consists of one subset only */
extern int Extra_zddIsOneSubset (DdManager *dd, DdNode* zS);
/*=== extraBddKmap.c ================================================================*/ /*=== extraBddKmap.c ================================================================*/
/* displays the Karnaugh Map of a function */ /* displays the Karnaugh Map of a function */
......
...@@ -2,7 +2,9 @@ SRC += src/bdd/extrab/extraBddAuto.c \ ...@@ -2,7 +2,9 @@ SRC += src/bdd/extrab/extraBddAuto.c \
src/bdd/extrab/extraBddCas.c \ src/bdd/extrab/extraBddCas.c \
src/bdd/extrab/extraBddImage.c \ src/bdd/extrab/extraBddImage.c \
src/bdd/extrab/extraBddKmap.c \ src/bdd/extrab/extraBddKmap.c \
src/bdd/extrab/extraBddMaxMin.c \
src/bdd/extrab/extraBddMisc.c \ src/bdd/extrab/extraBddMisc.c \
src/bdd/extrab/extraBddSet.c \
src/bdd/extrab/extraBddSymm.c \ src/bdd/extrab/extraBddSymm.c \
src/bdd/extrab/extraBddThresh.c \ src/bdd/extrab/extraBddThresh.c \
src/bdd/extrab/extraBddTime.c \ src/bdd/extrab/extraBddTime.c \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment