48 DdNode * bBdd0, * bBdd1, * bTemp, * bResult;
51 assert( Cudd_ReadSize(dd) == Aig_ManCiNum(pInit) );
53 Aig_ManConst1(pInit)->pData = Cudd_ReadOne( dd );
55 pObj->
pData = Cudd_bddIthVar( dd, i );
57 pObj->
pData = Cudd_bddIthVar( dd, Aig_ManRegNum(pInit) + i );
62 if ( !Aig_ObjIsNode(pObj) )
64 bBdd0 = Cudd_NotCond( (DdNode *)Aig_ObjFanin0(pObj)->pData, Aig_ObjFaninC0(pObj) );
65 bBdd1 = Cudd_NotCond( (DdNode *)Aig_ObjFanin1(pObj)->pData, Aig_ObjFaninC1(pObj) );
67 pObj->
pData = Cudd_bddAnd( dd, bBdd0, bBdd1 );
68 if ( pObj->
pData == NULL )
72 Cudd_RecursiveDeref( dd, (DdNode *)pObj->
pData );
73 Vec_PtrFree( vNodes );
76 Cudd_Ref( (DdNode *)pObj->
pData );
79 bResult = Cudd_ReadLogicZero( dd ); Cudd_Ref( bResult );
82 bBdd0 = Cudd_NotCond( Aig_ObjFanin0(pObj)->pData, Aig_ObjFaninC0(pObj) );
83 bResult = Cudd_bddOr( dd, bTemp = bResult, bBdd0 ); Cudd_Ref( bResult );
84 Cudd_RecursiveDeref( dd, bTemp );
89 if ( !Aig_ObjIsNode(pObj) )
91 Cudd_RecursiveDeref( dd, (DdNode *)pObj->
pData );
93 Vec_PtrFree( vNodes );
94 Cudd_Deref( bResult );
111 DdNode * bVar, * bCube, * bTemp;
115 assert( Cudd_ReadSize(dd) == Aig_ManCiNum(pInit) );
116 TimeStop = dd->TimeStop; dd->TimeStop = 0;
118 bCube = Cudd_ReadOne( dd ); Cudd_Ref( bCube );
120 bVar = Cudd_bddIthVar( dd, Aig_ManRegNum(pInit) + i );
121 bCube = Cudd_bddAnd( dd, bTemp = bCube, bVar ); Cudd_Ref( bCube );
122 Cudd_RecursiveDeref( dd, bTemp );
125 bFunc = Cudd_bddExistAbstract( dd, bFunc, bCube ); Cudd_Ref( bFunc );
126 Cudd_RecursiveDeref( dd, bCube );
128 dd->TimeStop = TimeStop;