static Dddmp_Hdr_t * DddmpBddReadHeaderCnf( char * file, IN: file name FILE * fp IN: file pointer )
dddmpLoadCnf.c
static Dddmp_Hdr_t * DddmpBddReadHeader( char * file, IN: file name FILE * fp IN: file pointer )
dddmpLoad.c
void DddmpClearVisitedAdd( DdNode * f IN: BDD node to be marked (as not visited) )
DddmpVisitedAdd
()
DddmpSetVisitedAdd
()
dddmpNodeAdd.c
void DddmpClearVisitedBdd( DdNode * f IN: BDD node to be marked (as not visited) )
DddmpVisited
()
DddmpSetVisited
()
dddmpNodeBdd.c
static int DddmpClearVisitedCnfRecur( DdNode * f IN: root of the BDD to be marked )
DddmpVisitedCnf
()
DddmpSetVisitedCnf
()
dddmpDdNodeCnf.c
static int DddmpClearVisitedCnfRecur( DdNode * f IN: root of the BDD to be marked )
DddmpVisitedCnf
()
DddmpSetVisitedCnf
()
dddmpNodeCnf.c
static void DddmpClearVisitedCnf( DdNode * f IN: BDD node to be marked (as not visited) )
DddmpVisitedCnf
()
DddmpSetVisitedCnf
()
dddmpDdNodeCnf.c
static void DddmpClearVisitedCnf( DdNode * f IN: BDD node to be marked (as not visited) )
DddmpVisitedCnf
()
DddmpSetVisitedCnf
()
dddmpNodeCnf.c
void DddmpClearVisited( DdNode * f IN: BDD node to be marked (as not visited) )
DddmpVisited
()
DddmpSetVisited
()
dddmpDdNodeBdd.c
static int DddmpCnfClauses2Bdd( Dddmp_Hdr_t * Hdr, IN: file header DdManager * ddMgr, IN: DD Manager int ** cnfTable, IN: CNF table for clauses int mode, IN: computation mode DdNode *** rootsPtrPtr OUT: array of returned BDD roots (by reference) )
dddmpLoadCnf.c
static int DddmpCuddBddArrayStoreCnf( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDD roots to be stored int rootN, IN: # of output BDD roots to be stored Dddmp_DecompCnfStoreType mode, IN: format selection int noHeader, IN: do not store header iff 1 char ** varNames, IN: array of variable names (or NULL) int * bddIds, IN: array of BDD node Ids (or NULL) int * bddAuxIds, IN: array of BDD Aux Ids (or NULL) int * cnfIds, IN: array of CNF ids (or NULL) int idInitial, IN: starting id for cutting variables int edgeInTh, IN: Max # Incoming Edges int pathLengthTh, IN: Max Path Length char * fname, IN: file name FILE * fp, IN: pointer to the store file int * clauseNPtr, OUT: number of clause stored int * varNewNPtr OUT: number of new variable created )
Dddmp_cuddBddStore
dddmpStoreCnf.c
int DddmpCuddBddArrayStore( Dddmp_DecompType ddType, IN: Selects the decomp type BDD DdManager * ddMgr, IN: DD Manager char * ddname, IN: DD name (or NULL) int nRoots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of DD roots to be stored char ** rootnames, IN: array of root names (or NULL) char ** varnames, IN: array of variable names (or NULL) int * auxids, IN: array of converted var IDs int mode, IN: storing mode selector Dddmp_VarInfoType varinfo, IN: extra info for variables in text mode char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddStore
Dddmp_cuddBddLoad
Dddmp_cuddBddArrayLoad
dddmpStoreBdd.c
static int DddmpCuddDdArrayLoadCnf( DdManager * ddMgr, IN: DD Manager Dddmp_RootMatchType rootmatchmode, IN: storing mode selector char ** rootmatchnames, IN: sorted names for loaded roots Dddmp_VarMatchType varmatchmode, IN: storing mode selector char ** varmatchnames, IN: array of variable names, by ids int * varmatchauxids, IN: array of variable auxids, by ids int * varcomposeids, IN: array of new ids, by ids int mode, IN: computation mode char * file, IN: file name FILE * fp, IN: file pointer DdNode *** rootsPtrPtr, OUT: array of BDD roots int * nRoots OUT: number of BDDs returned )
Dddmp_cuddBddArrayLoad
dddmpLoadCnf.c
static int DddmpCuddDdArrayLoad( Dddmp_DecompType ddType, IN: Selects decomp type DdManager * ddMgr, IN: DD Manager Dddmp_RootMatchType rootMatchMode, IN: storing mode selector char ** rootmatchnames, IN: sorted names for loaded roots Dddmp_VarMatchType varMatchMode, IN: storing mode selector char ** varmatchnames, IN: array of variable names, by ids int * varmatchauxids, IN: array of variable auxids, by ids int * varcomposeids, IN: array of new ids, by ids int mode, IN: requested input file format char * file, IN: file name FILE * fp, IN: file pointer DdNode *** pproots OUT: array BDD roots (by reference) )
allows the loading of a DD keeping variable IDs unchanged (regardless of the variable ordering of the reading manager); this is useful, for example, when swapping DDs to file and restoring them later from file, after possible variable reordering activations.
is used to allow variable match according to the position in the ordering.
requires a non NULL varmatchnames parameter; this is a vector of strings in one-to-one correspondence with variable IDs of the reading manager. Variables in the DD file read are matched with manager variables according to their name (a non NULL varnames parameter was required while storing the DD file).
has a meaning similar to DDDMP_VAR_MATCHNAMES, but integer auxiliary IDs are used instead of strings; the additional non NULL varmatchauxids parameter is needed.
uses the additional varcomposeids parameter is used as array of variable ids to be composed with ids stored in file.
Dddmp_cuddBddArrayStore
dddmpLoad.c
int DddmpCuddDdArrayStoreBdd( Dddmp_DecompType ddType, IN: Selects the decomp type: BDD or ADD DdManager * ddMgr, IN: DD Manager char * ddname, IN: DD name (or NULL) int nRoots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of DD roots to be stored char ** rootnames, IN: array of root names (or NULL) char ** varnames, IN: array of variable names (or NULL) int * auxids, IN: array of converted var IDs int mode, IN: storing mode selector Dddmp_VarInfoType varinfo, IN: extra info for variables in text mode char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddStore
Dddmp_cuddBddLoad
Dddmp_cuddBddArrayLoad
dddmpStoreAdd.c
static int DddmpCuddDdArrayStoreBlifBody( DdManager * ddMgr, IN: Manager int n, IN: Number of output nodes to be dumped DdNode ** f, IN: Array of output nodes to be dumped char ** inputNames, IN: Array of input names (or NULL) char ** outputNames, IN: Array of output names (or NULL) FILE * fp IN: Pointer to the dump file )
dddmpStoreMisc.c
static int DddmpCuddDdArrayStoreBlifStep( DdManager * ddMgr, DdNode * f, FILE * fp, st_table * visited, char ** names )
dddmpStoreMisc.c
static int DddmpCuddDdArrayStoreBlif( DdManager * ddMgr, IN: Manager int n, IN: Number of output nodes to be dumped DdNode ** f, IN: Array of output nodes to be dumped char ** inputNames, IN: Array of input names (or NULL) char ** outputNames, IN: Array of output names (or NULL) char * modelName, IN: Model name (or NULL) FILE * fp IN: Pointer to the dump file )
DddmpCuddDdArrayStoreBlifBody
Cudd_DumpBlif
dddmpStoreMisc.c
static int DddmpCuddDdArrayStorePrefixBody( DdManager * ddMgr, IN: Manager int n, IN: Number of output nodes to be dumped DdNode ** f, IN: Array of output nodes to be dumped char ** inputNames, IN: Array of input names (or NULL) char ** outputNames, IN: Array of output names (or NULL) FILE * fp IN: Pointer to the dump file )
DddmpCuddDdArrayStoreBlif
dddmpStoreMisc.c
static int DddmpCuddDdArrayStorePrefixStep( DdManager * ddMgr, DdNode * f, FILE * fp, st_table * visited, char ** names )
dddmpStoreMisc.c
static int DddmpCuddDdArrayStorePrefix( DdManager * ddMgr, IN: Manager int n, IN: Number of output nodes to be dumped DdNode ** f, IN: Array of output nodes to be dumped char ** inputNames, IN: Array of input names (or NULL) char ** outputNames, IN: Array of output names (or NULL) char * modelName, IN: Model name (or NULL) FILE * fp IN: Pointer to the dump file )
DddmpCuddDdArrayStoreBlif
dddmpStoreMisc.c
static int DddmpCuddDdArrayStoreSmvBody( DdManager * ddMgr, IN: Manager int n, IN: Number of output nodes to be dumped DdNode ** f, IN: Array of output nodes to be dumped char ** inputNames, IN: Array of input names (or NULL) char ** outputNames, IN: Array of output names (or NULL) FILE * fp IN: Pointer to the dump file )
DddmpCuddDdArrayStoreBlif
dddmpStoreMisc.c
static int DddmpCuddDdArrayStoreSmvStep( DdManager * ddMgr, DdNode * f, FILE * fp, st_table * visited, char ** names )
dddmpStoreMisc.c
static int DddmpCuddDdArrayStoreSmv( DdManager * ddMgr, IN: Manager int n, IN: Number of output nodes to be dumped DdNode ** f, IN: Array of output nodes to be dumped char ** inputNames, IN: Array of input names (or NULL) char ** outputNames, IN: Array of output names (or NULL) char * modelName, IN: Model name (or NULL) FILE * fp IN: Pointer to the dump file )
DddmpCuddDdArrayStoreBlif
dddmpStoreMisc.c
static void DddmpDdNodesCheckIncomingAndScanPath( DdNode * f, IN: BDD node to be numbered int pathLengthCurrent, IN: Current Path Length int edgeInTh, IN: Max # In-Edges, after a Insert Cut Point int pathLengthTh IN: Max Path Length (after, Insert a Cut Point) )
dddmpDdNodeCnf.c
static void DddmpDdNodesCheckIncomingAndScanPath( DdNode * f, IN: BDD node to be numbered int pathLengthCurrent, IN: Current Path Length int edgeInTh, IN: Max # In-Edges, after a Insert Cut Point int pathLengthTh IN: Max Path Length (after, Insert a Cut Point) )
dddmpNodeCnf.c
int DddmpDdNodesCountEdgesAndNumber( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: Array of BDDs int rootN, IN: Number of BDD roots in the array of BDDs int edgeInTh, IN: Max # In-Edges, after a Insert Cut Point int pathLengthTh, IN: Max Path Length (after, Insert a Cut Point) int * cnfIds, OUT: CNF identifiers for variables int id OUT: Number of Temporary Variables Introduced )
RemoveFromUniqueRecurCnf()
dddmpDdNodeCnf.c
int DddmpDdNodesCountEdgesAndNumber( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: Array of BDDs int rootN, IN: Number of BDD roots in the array of BDDs int edgeInTh, IN: Max # In-Edges, after a Insert Cut Point int pathLengthTh, IN: Max Path Length (after, Insert a Cut Point) int * cnfIds, OUT: CNF identifiers for variables int id OUT: Number of Temporary Variables Introduced )
RemoveFromUniqueRecurCnf()
dddmpNodeCnf.c
static int DddmpDdNodesCountEdgesRecur( DdNode * f IN: root of the BDD )
dddmpDdNodeCnf.c
static int DddmpDdNodesCountEdgesRecur( DdNode * f IN: root of the BDD )
dddmpNodeCnf.c
static int DddmpDdNodesNumberEdgesRecur( DdNode * f, IN: BDD node to be numbered int * cnfIds, IN: possible source for numbering int id IN/OUT: possible source for numbering )
dddmpDdNodeCnf.c
static int DddmpDdNodesNumberEdgesRecur( DdNode * f, IN: BDD node to be numbered int * cnfIds, IN: possible source for numbering int id IN/OUT: possible source for numbering )
dddmpNodeCnf.c
static int DddmpDdNodesResetCountRecur( DdNode * f IN: root of the BDD whose counters are reset )
dddmpDdNodeCnf.c
static int DddmpDdNodesResetCountRecur( DdNode * f IN: root of the BDD whose counters are reset )
dddmpNodeCnf.c
static void DddmpFreeHeaderCnf( Dddmp_Hdr_t * Hdr IN: pointer to header )
dddmpLoadCnf.c
static void DddmpFreeHeader( Dddmp_Hdr_t * Hdr IN: pointer to header )
dddmpLoad.c
int * DddmpIntArrayDup( int * array, IN: array of ints to be duplicated int n IN: size of the array )
dddmpUtil.c
int * DddmpIntArrayRead( FILE * fp, IN: input file int n IN: size of the array )
dddmpUtil.c
int DddmpIntArrayWrite( FILE * fp, IN: output file int * array, IN: array of ints int n IN: size of the array )
dddmpUtil.c
int DddmpNumberAddNodes( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int n IN: number of BDD roots in the array of BDDs )
RemoveFromUniqueRecurAdd
()
NumberNodeRecurAdd
()
DddmpUnnumberDdNodesAdd
()
dddmpNodeAdd.c
int DddmpNumberBddNodes( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int n IN: number of BDD roots in the array of BDDs )
RemoveFromUniqueRecur()
NumberNodeRecur()
DddmpUnnumberBddNodes
()
dddmpNodeBdd.c
int DddmpNumberDdNodesCnf( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int rootN, IN: number of BDD roots in the array of BDDs int * cnfIds, OUT: CNF identifiers for variables int id OUT: number of Temporary Variables Introduced )
RemoveFromUniqueRecurCnf()
NumberNodeRecurCnf()
DddmpUnnumberDdNodesCnf()
dddmpDdNodeCnf.c
int DddmpNumberDdNodesCnf( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int rootN, IN: number of BDD roots in the array of BDDs int * cnfIds, OUT: CNF identifiers for variables int id OUT: number of Temporary Variables Introduced )
RemoveFromUniqueRecurCnf()
NumberNodeRecurCnf()
DddmpUnnumberDdNodesCnf()
dddmpNodeCnf.c
int DddmpNumberDdNodes( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int n IN: number of BDD roots in the array of BDDs )
RemoveFromUniqueRecur()
NumberNodeRecur()
DddmpUnnumberDdNodes()
dddmpDdNodeBdd.c
static int DddmpPrintBddAndNextRecur( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be displayed )
dddmpDdNodeCnf.c
static int DddmpPrintBddAndNextRecur( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be displayed )
dddmpNodeCnf.c
int DddmpPrintBddAndNext( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: Array of BDDs to be displayed int rootN IN: Number of BDD roots in the array of BDDs )
dddmpDdNodeCnf.c
int DddmpPrintBddAndNext( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: Array of BDDs to be displayed int rootN IN: Number of BDD roots in the array of BDDs )
dddmpNodeCnf.c
static int DddmpReadCnfClauses( Dddmp_Hdr_t * Hdr, IN: file header int *** cnfTable, OUT: CNF table for clauses FILE * fp IN: source file )
dddmpLoadCnf.c
int DddmpReadCode( FILE * fp, IN: file where to read the code struct binary_dd_code * pcode OUT: the read code )
DddmpWriteCode()
dddmpBinary.c
int DddmpReadInt( FILE * fp, IN: file where to read the integer int * pid OUT: the read integer )
DddmpWriteInt()
dddmpBinary.c
int DddmpReadNodeIndexAdd( DdNode * f IN: BDD node )
DddmpWriteNodeIndexAdd
()
DddmpSetVisitedAdd
()
DddmpVisitedAdd
()
dddmpNodeAdd.c
int DddmpReadNodeIndexBdd( DdNode * f IN: BDD node )
DddmpWriteNodeIndexBdd
()
DddmpSetVisitedBdd
()
DddmpVisitedBdd
()
dddmpNodeBdd.c
int DddmpReadNodeIndexCnf( DdNode * f IN: BDD node )
DddmpWriteNodeIndexCnf()
DddmpSetVisitedCnf
()
DddmpVisitedCnf
()
dddmpNodeCnf.c
static int DddmpReadNodeIndexCnf( DdNode * f IN: BDD node )
DddmpWriteNodeIndexCnf()
DddmpSetVisitedCnf
()
DddmpVisitedCnf
()
dddmpDdNodeCnf.c
int DddmpReadNodeIndex( DdNode * f IN: BDD node )
DddmpWriteNodeIndex()
DddmpSetVisited
()
DddmpVisited
()
dddmpDdNodeBdd.c
void DddmpSetVisitedAdd( DdNode * f IN: BDD node to be marked (as visited) )
DddmpVisitedAdd
()
DddmpClearVisitedAdd
()
dddmpNodeAdd.c
void DddmpSetVisitedBdd( DdNode * f IN: BDD node to be marked (as visited) )
DddmpVisitedBdd
()
DddmpClearVisitedBdd
()
dddmpNodeBdd.c
static void DddmpSetVisitedCnf( DdNode * f IN: BDD node to be marked (as visited) )
DddmpVisitedCnf
()
DddmpClearVisitedCnf
()
dddmpDdNodeCnf.c
void DddmpSetVisitedCnf( DdNode * f IN: BDD node to be marked (as visited) )
DddmpVisitedCnf
()
DddmpClearVisitedCnf
()
dddmpNodeCnf.c
void DddmpSetVisited( DdNode * f IN: BDD node to be marked (as visited) )
DddmpVisited
()
DddmpClearVisited
()
dddmpDdNodeBdd.c
char ** DddmpStrArrayDup( char ** array, IN: array of strings to be duplicated int n IN: size of the array )
dddmpUtil.c
void DddmpStrArrayFree( char ** array, IN: array of strings int n IN: size of the array )
dddmpUtil.c
char ** DddmpStrArrayRead( FILE * fp, IN: input file int n IN: size of the array )
dddmpUtil.c
int DddmpStrArrayWrite( FILE * fp, IN: output file char ** array, IN: array of strings int n IN: size of the array )
dddmpUtil.c
char * DddmpStrDup( char * str IN: string to be duplicated )
dddmpUtil.c
void DddmpUnnumberAddNodes( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int n IN: number of BDD roots in the array of BDDs )
DddmpNumberDdNodeAdd
()
dddmpNodeAdd.c
void DddmpUnnumberBddNodes( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int n IN: number of BDD roots in the array of BDDs )
DddmpNumberBddNode
()
dddmpNodeBdd.c
void DddmpUnnumberDdNodesCnf( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int rootN IN: number of BDD roots in the array of BDDs )
DddmpNumberDdNode()
dddmpDdNodeCnf.c
void DddmpUnnumberDdNodesCnf( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int rootN IN: number of BDD roots in the array of BDDs )
DddmpNumberDdNode()
dddmpNodeCnf.c
void DddmpUnnumberDdNodes( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs int n IN: number of BDD roots in the array of BDDs )
DddmpNumberDdNode()
dddmpDdNodeBdd.c
int DddmpVisitedAdd( DdNode * f IN: BDD node to be tested )
DddmpSetVisitedAdd
()
DddmpClearVisitedAdd
()
dddmpNodeAdd.c
int DddmpVisitedBdd( DdNode * f IN: BDD node to be tested )
DddmpSetVisitedBdd
()
DddmpClearVisitedBdd
()
dddmpNodeBdd.c
int DddmpVisitedCnf( DdNode * f IN: BDD node to be tested )
DddmpSetVisitedCnf
()
DddmpClearVisitedCnf
()
dddmpNodeCnf.c
static int DddmpVisitedCnf( DdNode * f IN: BDD node to be tested )
DddmpSetVisitedCnf
()
DddmpClearVisitedCnf
()
dddmpDdNodeCnf.c
int DddmpVisited( DdNode * f IN: BDD node to be tested )
DddmpSetVisited
()
DddmpClearVisited
()
dddmpDdNodeBdd.c
int DddmpWriteCode( FILE * fp, IN: file where to write the code struct binary_dd_code code IN: the code to be written )
Unused : 1 bit; V : 2 bits; (variable code) T : 2 bits; (Then code) Ecompl : 1 bit; (Else complemented) E : 2 bits; (Else code)Ecompl is set with complemented edges.
DddmpReadCode()
dddmpBinary.c
int DddmpWriteInt( FILE * fp, IN: file where to write the integer int id IN: integer to be written )
DddmpReadInt()
dddmpBinary.c
void DddmpWriteNodeIndexAdd( DdNode * f, IN: BDD node int id IN: index to be written )
DddmpReadNodeIndexAdd
()
DddmpSetVisitedAdd
()
DddmpVisitedAdd
()
dddmpNodeAdd.c
void DddmpWriteNodeIndexBdd( DdNode * f, IN: BDD node int id IN: index to be written )
DddmpReadNodeIndexBdd()
DddmpSetVisitedBdd
()
DddmpVisitedBdd
()
dddmpNodeBdd.c
int DddmpWriteNodeIndexCnfBis( DdNode * f, IN: BDD node int id IN: index to be written )
DddmpReadNodeIndexCnf()
DddmpSetVisitedCnf
()
DddmpVisitedCnf
()
dddmpDdNodeCnf.c
static int DddmpWriteNodeIndexCnfWithTerminalCheck( DdNode * f, IN: BDD node int * cnfIds, IN: possible source for the index to be written int id IN: possible source for the index to be written )
DddmpReadNodeIndexCnf()
DddmpSetVisitedCnf
()
DddmpVisitedCnf
()
dddmpNodeCnf.c
int DddmpWriteNodeIndexCnf( DdNode * f, IN: BDD node int id IN: index to be written )
DddmpReadNodeIndexCnf()
DddmpSetVisitedCnf
()
DddmpVisitedCnf
()
dddmpNodeCnf.c
static int DddmpWriteNodeIndexCnf( DdNode * f, IN: BDD node int * cnfIds, IN: possible source for the index to be written int id IN: possible source for the index to be written )
DddmpReadNodeIndexCnf()
DddmpSetVisitedCnf
()
DddmpVisitedCnf
()
dddmpDdNodeCnf.c
void DddmpWriteNodeIndex( DdNode * f, IN: BDD node int id IN: index to be written )
DddmpReadNodeIndex()
DddmpSetVisited
()
DddmpVisited
()
dddmpDdNodeBdd.c
int Dddmp_Bin2Text( char * filein, IN: name of binary file char * fileout IN: name of ASCII file )
Dddmp_Text2Bin()
dddmpConvert.c
int Dddmp_Text2Bin( char * filein, IN: name of ASCII file char * fileout IN: name of binary file )
Dddmp_Bin2Text()
dddmpConvert.c
int Dddmp_cuddAddArrayLoad( DdManager * ddMgr, IN: DD Manager Dddmp_RootMatchType rootMatchMode, IN: storing mode selector char ** rootmatchnames, IN: sorted names for loaded roots Dddmp_VarMatchType varMatchMode, IN: storing mode selector char ** varmatchnames, IN: array of variable names, by ids int * varmatchauxids, IN: array of variable auxids, by ids int * varcomposeids, IN: array of new ids, by ids int mode, IN: requested input file format char * file, IN: file name FILE * fp, IN: file pointer DdNode *** pproots OUT: array of returned BDD roots )
Dddmp_cuddBddArrayStore
dddmpLoad.c
int Dddmp_cuddAddArrayStore( DdManager * ddMgr, IN: DD Manager char * ddname, IN: DD name (or NULL) int nRoots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of ADD roots to be stored char ** rootnames, IN: array of root names (or NULL) char ** varnames, IN: array of variable names (or NULL) int * auxids, IN: array of converted var IDs int mode, IN: storing mode selector Dddmp_VarInfoType varinfo, IN: extra info for variables in text mode char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddAddStore
Dddmp_cuddAddLoad
Dddmp_cuddAddArrayLoad
dddmpStoreAdd.c
DdNode * Dddmp_cuddAddLoad( DdManager * ddMgr, IN: Manager Dddmp_VarMatchType varMatchMode, IN: storing mode selector char ** varmatchnames, IN: array of variable names by IDs int * varmatchauxids, IN: array of variable auxids by IDs int * varcomposeids, IN: array of new ids by IDs int mode, IN: requested input file format char * file, IN: file name FILE * fp IN: file pointer )
Dddmp_cuddAddStore
Dddmp_cuddAddArrayLoad
dddmpLoad.c
int Dddmp_cuddAddStore( DdManager * ddMgr, IN: DD Manager char * ddname, IN: DD name (or NULL) DdNode * f, IN: ADD root to be stored char ** varnames, IN: array of variable names (or NULL) int * auxids, IN: array of converted var ids int mode, IN: storing mode selector Dddmp_VarInfoType varinfo, IN: extra info for variables in text mode char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddAddLoad
Dddmp_cuddAddArrayLoad
dddmpStoreAdd.c
int Dddmp_cuddBddArrayLoadCnf( DdManager * ddMgr, IN: DD Manager Dddmp_RootMatchType rootmatchmode, IN: storing mode selector char ** rootmatchnames, IN: sorted names for loaded roots Dddmp_VarMatchType varmatchmode, IN: storing mode selector char ** varmatchnames, IN: array of variable names, by IDs int * varmatchauxids, IN: array of variable auxids, by IDs int * varcomposeids, IN: array of new ids, by IDs int mode, IN: computation Mode char * file, IN: file name FILE * fp, IN: file pointer DdNode *** rootsPtrPtr, OUT: array of returned BDD roots int * nRoots OUT: number of BDDs returned )
Dddmp_cuddBddArrayLoad
dddmpLoadCnf.c
int Dddmp_cuddBddArrayLoad( DdManager * ddMgr, IN: DD Manager Dddmp_RootMatchType rootMatchMode, IN: storing mode selector char ** rootmatchnames, IN: sorted names for loaded roots Dddmp_VarMatchType varMatchMode, IN: storing mode selector char ** varmatchnames, IN: array of variable names, by ids int * varmatchauxids, IN: array of variable auxids, by ids int * varcomposeids, IN: array of new ids, by ids int mode, IN: requested input file format char * file, IN: file name FILE * fp, IN: file pointer DdNode *** pproots OUT: array of returned BDD roots )
allows the loading of a DD keeping variable IDs unchanged (regardless of the variable ordering of the reading manager); this is useful, for example, when swapping DDs to file and restoring them later from file, after possible variable reordering activations.
is used to allow variable match according to the position in the ordering.
requires a non NULL varmatchnames parameter; this is a vector of strings in one-to-one correspondence with variable IDs of the reading manager. Variables in the DD file read are matched with manager variables according to their name (a non NULL varnames parameter was required while storing the DD file).
has a meaning similar to DDDMP_VAR_MATCHNAMES, but integer auxiliary IDs are used instead of strings; the additional non NULL varmatchauxids parameter is needed.
uses the additional varcomposeids parameter is used as array of variable ids to be composed with ids stored in file.
Dddmp_cuddBddArrayStore
dddmpLoad.c
int Dddmp_cuddBddArrayStoreBlif( DdManager * ddMgr, IN: DD Manager int nroots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of BDD roots to be stored char ** inputNames, IN: array of variable names (or NULL) char ** outputNames, IN: array of root names (or NULL) char * modelName, IN: Model Name char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddArrayStorePrefix
dddmpStoreMisc.c
int Dddmp_cuddBddArrayStoreCnf( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDD roots to be stored int rootN, IN: # output BDD roots to be stored Dddmp_DecompCnfStoreType mode, IN: format selection int noHeader, IN: do not store header iff 1 char ** varNames, IN: array of variable names (or NULL) int * bddIds, IN: array of converted var IDs int * bddAuxIds, IN: array of BDD node Auxiliary Ids int * cnfIds, IN: array of converted var IDs int idInitial, IN: starting id for cutting variables int edgeInTh, IN: Max # Incoming Edges int pathLengthTh, IN: Max Path Length char * fname, IN: file name FILE * fp, IN: pointer to the store file int * clauseNPtr, OUT: number of clause stored int * varNewNPtr OUT: number of new variable created )
dddmpStoreCnf.c
int Dddmp_cuddBddArrayStorePrefix( DdManager * ddMgr, IN: DD Manager int nroots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of BDD roots to be stored char ** inputNames, IN: array of variable names (or NULL) char ** outputNames, IN: array of root names (or NULL) char * modelName, IN: Model Name char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddArrayStore
dddmpStoreMisc.c
int Dddmp_cuddBddArrayStoreSmv( DdManager * ddMgr, IN: DD Manager int nroots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of BDD roots to be stored char ** inputNames, IN: array of variable names (or NULL) char ** outputNames, IN: array of root names (or NULL) char * modelName, IN: Model Name char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddArrayStore
dddmpStoreMisc.c
int Dddmp_cuddBddArrayStore( DdManager * ddMgr, IN: DD Manager char * ddname, IN: dd name (or NULL) int nRoots, IN: number of output BDD roots to be stored DdNode ** f, IN: array of BDD roots to be stored char ** rootnames, IN: array of root names (or NULL) char ** varnames, IN: array of variable names (or NULL) int * auxids, IN: array of converted var IDs int mode, IN: storing mode selector Dddmp_VarInfoType varinfo, IN: extra info for variables in text mode char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddStore
Dddmp_cuddBddLoad
Dddmp_cuddBddArrayLoad
dddmpStoreBdd.c
int Dddmp_cuddBddDisplayBinary( char * fileIn, IN: name of binary file char * fileOut IN: name of text file )
Dddmp_cuddBddStore
Dddmp_cuddBddLoad
dddmpDbg.c
int Dddmp_cuddBddLoadCnf( DdManager * ddMgr, IN: DD Manager Dddmp_VarMatchType varmatchmode, IN: storing mode selector char ** varmatchnames, IN: array of variable names, by IDs int * varmatchauxids, IN: array of variable auxids, by IDs int * varcomposeids, IN: array of new ids accessed, by IDs int mode, IN: computation mode char * file, IN: file name FILE * fp, IN: file pointer DdNode *** rootsPtrPtr, OUT: array of returned BDD roots int * nRoots OUT: number of BDDs returned )
Dddmp_cuddBddLoad
Dddmp_cuddBddArrayLoad
dddmpLoadCnf.c
DdNode * Dddmp_cuddBddLoad( DdManager * ddMgr, IN: DD Manager Dddmp_VarMatchType varMatchMode, IN: storing mode selector char ** varmatchnames, IN: array of variable names - by IDs int * varmatchauxids, IN: array of variable auxids - by IDs int * varcomposeids, IN: array of new ids accessed - by IDs int mode, IN: requested input file format char * file, IN: file name FILE * fp IN: file pointer )
Dddmp_cuddBddStore
Dddmp_cuddBddArrayLoad
dddmpLoad.c
int Dddmp_cuddBddStoreBlif( DdManager * ddMgr, IN: DD Manager int nRoots, IN: Number of BDD roots DdNode * f, IN: BDD root to be stored char ** inputNames, IN: Array of variable names char ** outputNames, IN: Array of root names char * modelName, IN: Model Name char * fileName, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddStorePrefix
dddmpStoreMisc.c
int Dddmp_cuddBddStoreCnf( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: BDD root to be stored Dddmp_DecompCnfStoreType mode, IN: format selection int noHeader, IN: do not store header iff 1 char ** varNames, IN: array of variable names (or NULL) int * bddIds, IN: array of var ids int * bddAuxIds, IN: array of BDD node Auxiliary Ids int * cnfIds, IN: array of CNF var ids int idInitial, IN: starting id for cutting variables int edgeInTh, IN: Max # Incoming Edges int pathLengthTh, IN: Max Path Length char * fname, IN: file name FILE * fp, IN: pointer to the store file int * clauseNPtr, OUT: number of clause stored int * varNewNPtr OUT: number of new variable created )
Dddmp_cuddBddArrayStoreCnf
dddmpStoreCnf.c
int Dddmp_cuddBddStorePrefix( DdManager * ddMgr, IN: DD Manager int nRoots, IN: Number of BDD roots DdNode * f, IN: BDD root to be stored char ** inputNames, IN: Array of variable names char ** outputNames, IN: Array of root names char * modelName, IN: Model Name char * fileName, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddStore
dddmpStoreMisc.c
int Dddmp_cuddBddStoreSmv( DdManager * ddMgr, IN: DD Manager int nRoots, IN: Number of BDD roots DdNode * f, IN: BDD root to be stored char ** inputNames, IN: Array of variable names char ** outputNames, IN: Array of root names char * modelName, IN: Model Name char * fileName, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddStore
dddmpStoreMisc.c
int Dddmp_cuddBddStore( DdManager * ddMgr, IN: DD Manager char * ddname, IN: DD name (or NULL) DdNode * f, IN: BDD root to be stored char ** varnames, IN: array of variable names (or NULL) int * auxids, IN: array of converted var ids int mode, IN: storing mode selector Dddmp_VarInfoType varinfo, IN: extra info for variables in text mode char * fname, IN: File name FILE * fp IN: File pointer to the store file )
Dddmp_cuddBddLoad
Dddmp_cuddBddArrayLoad
dddmpStoreBdd.c
int Dddmp_cuddHeaderLoadCnf( int * nVars, OUT: number of DD variables int * nsuppvars, OUT: number of support variables char *** suppVarNames, OUT: array of support variable names char *** orderedVarNames, OUT: array of variable names int ** varIds, OUT: array of variable ids int ** varComposeIds, OUT: array of permids ids int ** varAuxIds, OUT: array of variable aux ids int * nRoots, OUT: number of root in the file char * file, IN: file name FILE * fp IN: file pointer )
Dddmp_cuddBddArrayLoad
dddmpLoadCnf.c
int Dddmp_cuddHeaderLoad( Dddmp_DecompType * ddType, OUT: selects the proper decomp type int * nVars, OUT: number of DD variables int * nsuppvars, OUT: number of support variables char *** suppVarNames, OUT: array of support variable names char *** orderedVarNames, OUT: array of variable names int ** varIds, OUT: array of variable ids int ** varComposeIds, OUT: array of permids ids int ** varAuxIds, OUT: array of variable aux ids int * nRoots, OUT: number of root in the file char * file, IN: file name FILE * fp IN: file pointer )
Dddmp_cuddBddArrayLoad
dddmpLoad.c
int FindVarname( char * name, IN: name to look for char ** array, IN: search array int n IN: size of the array )
dddmpUtil.c
static int NodeBinaryStoreBdd( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: DD node to be stored int mode, IN: store mode int * supportids, IN: internal ids for variables char ** varnames, IN: names of variables: to be stored with nodes int * outids, IN: output ids for variables FILE * fp, IN: store file int idf, IN: index of the node int vf, IN: variable of the node int idT, IN: index of the Then node int idE, IN: index of the Else node int vT, IN: variable of the Then node int vE, IN: variable of the Else node DdNode * T, IN: Then node DdNode * E IN: Else node )
NodeTextStoreBdd
dddmpStoreBdd.c
static int NodeStoreRecurAdd( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: DD node to be stored int mode, IN: store mode int * supportids, IN: internal ids for variables char ** varnames, IN: names of variables: to be stored with nodes int * outids, IN: output ids for variables FILE * fp IN: store file )
In binary mode nodes are represented as a sequence of bytes, representing var-index, Then-index, and Else-index in an optimized way. Only the first byte (code) is mandatory. Integer indexes are represented in absolute or relative mode, where relative means offset wrt. a Then/Else node info. Suppose Var(NodeId), Then(NodeId) and Else(NodeId) represent infos about a given node.
The generic "NodeId" node is stored as
dddmpStoreAdd.c
static int NodeStoreRecurBdd( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: DD node to be stored int mode, IN: store mode int * supportids, IN: internal ids for variables char ** varnames, IN: names of variables: to be stored with nodes int * outids, IN: output ids for variables FILE * fp IN: store file )
In binary mode nodes are represented as a sequence of bytes, representing var-index, Then-index, and Else-index in an optimized way. Only the first byte (code) is mandatory. Integer indexes are represented in absolute or relative mode, where relative means offset wrt. a Then/Else node info. Suppose Var(NodeId), Then(NodeId) and Else(NodeId) represent infos about a given node.
The generic "NodeId" node is stored as
dddmpStoreBdd.c
static int NodeTextStoreAdd( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: DD node to be stored int mode, IN: store mode int * supportids, IN: internal ids for variables char ** varnames, IN: names of variables: to be stored with nodes int * outids, IN: output ids for variables FILE * fp, IN: Store file int idf, IN: index of the current node int vf, IN: variable of the current node int idT, IN: index of the Then node int idE IN: index of the Else node )
NodeBinaryStore
dddmpStoreAdd.c
static int NodeTextStoreBdd( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: DD node to be stored int mode, IN: store mode int * supportids, IN: internal ids for variables char ** varnames, IN: names of variables: to be stored with nodes int * outids, IN: output ids for variables FILE * fp, IN: Store file int idf, IN: index of the current node int vf, IN: variable of the current node int idT, IN: index of the Then node int idE IN: index of the Else node )
NodeBinaryStoreBdd
dddmpStoreBdd.c
static int NumberNodeRecurAdd( DdNode * f, IN: root of the BDD to be numbered int id IN/OUT: index to be assigned to the node )
dddmpNodeAdd.c
static int NumberNodeRecurBdd( DdNode * f, IN: root of the BDD to be numbered int id IN/OUT: index to be assigned to the node )
dddmpNodeBdd.c
static int NumberNodeRecurCnf( DdNode * f, IN: root of the BDD to be numbered int * cnfIds, IN: possible source for numbering int id IN/OUT: possible source for numbering )
dddmpDdNodeCnf.c
static int NumberNodeRecurCnf( DdNode * f, IN: root of the BDD to be numbered int * cnfIds, IN: possible source for numbering int id IN/OUT: possible source for numbering )
dddmpNodeCnf.c
static int NumberNodeRecur( DdNode * f, IN: root of the BDD to be numbered int id IN/OUT: index to be assigned to the node )
dddmpDdNodeBdd.c
int QsortStrcmp( const void * ps1, IN: pointer to the first string const void * ps2 IN: pointer to the second string )
dddmpUtil.c
static int ReadByteBinary( FILE * fp, IN: file where to read the byte unsigned char * cp OUT: the read byte )
WriteByteBinary()
dddmpBinary.c
static void RemoveFromUniqueRecurAdd( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be extracted )
RestoreInUniqueRecurAdd
()
dddmpNodeAdd.c
static void RemoveFromUniqueRecurBdd( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be extracted )
RestoreInUniqueRecurBdd
()
dddmpNodeBdd.c
static void RemoveFromUniqueRecurCnf( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be extracted )
RestoreInUniqueRecurCnf()
dddmpNodeCnf.c
static void RemoveFromUniqueRecurCnf( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be extracted )
RestoreInUniqueRecurCnf()
dddmpDdNodeCnf.c
static void RemoveFromUniqueRecur( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be extracted )
RestoreInUniqueRecur()
dddmpDdNodeBdd.c
static void RestoreInUniqueRecurAdd( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be restored )
RemoveFromUniqueAdd
()
dddmpNodeAdd.c
static void RestoreInUniqueRecurBdd( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be restored )
RemoveFromUnique()
dddmpNodeBdd.c
static void RestoreInUniqueRecurCnf( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be restored )
RemoveFromUnique()
dddmpDdNodeCnf.c
static void RestoreInUniqueRecurCnf( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be restored )
RemoveFromUnique()
dddmpNodeCnf.c
static void RestoreInUniqueRecur( DdManager * ddMgr, IN: DD Manager DdNode * f IN: root of the BDD to be restored )
RemoveFromUnique()
dddmpDdNodeBdd.c
static int StoreCnfBestNotSharedRecur( DdManager * ddMgr, IN: DD Manager DdNode * node, IN: BDD to store int idf, IN: Id to store int * bddIds, IN: BDD identifiers int * cnfIds, IN: corresponding CNF identifiers FILE * fp, IN: file pointer int * list, IN: temporary array to store cubes int * clauseN, OUT: number of stored clauses int * varMax OUT: maximum identifier of the variables created )
dddmpStoreCnf.c
static int StoreCnfBestSharedRecur( DdManager * ddMgr, IN: DD Manager DdNode * node, IN: BDD to store int * bddIds, IN: BDD identifiers int * cnfIds, IN: corresponding CNF identifiers FILE * fp, IN: file pointer int * list, IN: temporary array to store cubes int * clauseN, OUT: number of stored clauses int * varMax OUT: maximum identifier of the variables created )
dddmpStoreCnf.c
static int StoreCnfBest( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs to store int rootN, IN: number of BDD in the array int * bddIds, IN: BDD identifiers int * cnfIds, IN: corresponding CNF identifiers int idInitial, IN: initial value for numbering new CNF variables FILE * fp, IN: file pointer int * varMax, OUT: maximum identifier of the variables created int * clauseN, OUT: number of stored clauses int * rootStartLine OUT: line where root starts )
StoreCnfMaxtermByMaxterm
dddmpStoreCnf.c
static void StoreCnfMaxtermByMaxtermRecur( DdManager * ddMgr, IN: DD Manager DdNode * node, IN: BDD to store int * bddIds, IN: BDD identifiers int * cnfIds, IN: corresponding CNF identifiers FILE * fp, IN: file pointer int * list, IN: temporary array to store cubes int * clauseN, OUT: number of stored clauses int * varMax OUT: maximum identifier of the variables created )
dddmpStoreCnf.c
static int StoreCnfMaxtermByMaxterm( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: array of BDDs to store int rootN, IN: number of BDDs in the array int * bddIds, IN: BDD Identifiers int * cnfIds, IN: corresponding CNF Identifiers int idInitial, IN: initial value for numbering new CNF variables FILE * fp, IN: file pointer int * varMax, OUT: maximum identifier of the variables created int * clauseN, OUT: number of stored clauses int * rootStartLine OUT: line where root starts )
StoreCnfBest
dddmpStoreCnf.c
static int StoreCnfNodeByNodeRecur( DdManager * ddMgr, IN: DD Manager DdNode * f, IN: BDD node to be stored int * bddIds, IN: BDD ids for variables int * cnfIds, IN: CNF ids for variables FILE * fp, IN: store file int * clauseN, OUT: number of clauses written in the CNF file int * varMax OUT: maximum value of id written in the CNF file )
dddmpStoreCnf.c
static int StoreCnfNodeByNode( DdManager * ddMgr, IN: DD Manager DdNode ** f, IN: BDD array to be stored int rootN, IN: number of BDDs in the array int * bddIds, IN: BDD ids for variables int * cnfIds, IN: CNF ids for variables FILE * fp, IN: store file int * clauseN, IN/OUT: number of clauses written in the CNF file int * varMax, IN/OUT: maximum value of id written in the CNF file int * rootStartLine OUT: CNF line where root starts )
dddmpStoreCnf.c
static int StoreCnfOneNode( DdNode * f, IN: node to be stored int idf, IN: node CNF Index int vf, IN: node BDD Index int idT, IN: Then CNF Index with sign = inverted edge int idE, IN: Else CNF Index with sign = inverted edge FILE * fp, IN: store file int * clauseN, OUT: number of clauses int * varMax OUT: maximun Index of variable stored )
dddmpStoreCnf.c
static int WriteByteBinary( FILE * fp, IN: file where to write the byte unsigned char c IN: the byte to be written )
ReadByteBinary()
dddmpBinary.c
static int printCubeCnf( DdManager * ddMgr, IN: DD Manager DdNode * node, IN: BDD to store int * cnfIds, IN: CNF identifiers FILE * fp, IN: file pointer int * list, IN: temporary array to store cubes int * varMax OUT: maximum identifier of the variables created )
dddmpStoreCnf.c
( )
dddmp.h
( )
dddmp.h
( )
dddmp.h
( )
dddmp.h
( )
dddmpInt.h
( )
dddmpInt.h