diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2007-09-30 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2007-09-30 08:01:00 -0700 |
commit | e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7 (patch) | |
tree | de3ffe87c3e17950351e3b7d97fa18318bd5ea9a /src/bdd/dsd/dsdMan.c | |
parent | 7d7e60f2dc84393cd4c5db22d2eaf7b1fb1a79b2 (diff) | |
download | abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.gz abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.bz2 abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.zip |
Version abc70930
Diffstat (limited to 'src/bdd/dsd/dsdMan.c')
-rw-r--r-- | src/bdd/dsd/dsdMan.c | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/src/bdd/dsd/dsdMan.c b/src/bdd/dsd/dsdMan.c deleted file mode 100644 index 6e43f0f4..00000000 --- a/src/bdd/dsd/dsdMan.c +++ /dev/null @@ -1,114 +0,0 @@ -/**CFile**************************************************************** - - FileName [dsdMan.c] - - PackageName [DSD: Disjoint-support decomposition package.] - - Synopsis [APIs of the DSD manager.] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 8.0. Started - September 22, 2003.] - - Revision [$Id: dsdMan.c,v 1.0 2002/22/09 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#include "dsdInt.h" - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// API OF DSD MANAGER /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [Starts the DSD manager.] - - Description [Takes the started BDD manager and the maximum support size - of the function to be DSD-decomposed. The manager should have at least as - many variables as there are variables in the support. The functions should - be expressed using the first nSuppSizeMax variables in the manager (these - may be ordered not necessarily on top of the manager).] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Dsd_Manager_t * Dsd_ManagerStart( DdManager * dd, int nSuppMax, int fVerbose ) -{ - Dsd_Manager_t * dMan; - Dsd_Node_t * pNode; - int i; - - assert( nSuppMax <= dd->size ); - - dMan = ALLOC( Dsd_Manager_t, 1 ); - memset( dMan, 0, sizeof(Dsd_Manager_t) ); - dMan->dd = dd; - dMan->nInputs = nSuppMax; - dMan->fVerbose = fVerbose; - dMan->nRoots = 0; - dMan->nRootsAlloc = 50; - dMan->pRoots = (Dsd_Node_t **) malloc( dMan->nRootsAlloc * sizeof(Dsd_Node_t *) ); - dMan->pInputs = (Dsd_Node_t **) malloc( dMan->nInputs * sizeof(Dsd_Node_t *) ); - - // create the primary inputs and insert them into the table - dMan->Table = st_init_table(st_ptrcmp, st_ptrhash); - for ( i = 0; i < dMan->nInputs; i++ ) - { - pNode = Dsd_TreeNodeCreate( DSD_NODE_BUF, 1, 0 ); - pNode->G = dd->vars[i]; Cudd_Ref( pNode->G ); - pNode->S = dd->vars[i]; Cudd_Ref( pNode->S ); - st_insert( dMan->Table, (char*)dd->vars[i], (char*)pNode ); - dMan->pInputs[i] = pNode; - } - pNode = Dsd_TreeNodeCreate( DSD_NODE_CONST1, 0, 0 ); - pNode->G = b1; Cudd_Ref( pNode->G ); - pNode->S = b1; Cudd_Ref( pNode->S ); - st_insert( dMan->Table, (char*)b1, (char*)pNode ); - dMan->pConst1 = pNode; - - Dsd_CheckCacheAllocate( 5000 ); - return dMan; -} - -/**Function************************************************************* - - Synopsis [Stops the DSD manager.] - - Description [Stopping the DSD manager automatically derefereces and - deallocates all the DSD nodes that were created during the life time - of the DSD manager. As a result, the user does not need to deref or - deallocate any DSD nodes or trees that are derived and placed in - the manager while it exists.] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Dsd_ManagerStop( Dsd_Manager_t * dMan ) -{ - st_generator * gen; - Dsd_Node_t * pNode; - DdNode * bFunc; - // delete the nodes - st_foreach_item( dMan->Table, gen, (char**)&bFunc, (char**)&pNode ) - Dsd_TreeNodeDelete( dMan->dd, Dsd_Regular(pNode) ); - st_free_table(dMan->Table); - free( dMan->pInputs ); - free( dMan->pRoots ); - free( dMan ); - Dsd_CheckCacheDeallocate(); -} - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// |