83 vVars = Vec_IntAlloc( Aig_ManRegNum(pAig) );
86 pDri = Aig_ObjFanin0(pObj);
87 if ( Vec_IntEntry( vDriRefs, Aig_ObjId(pDri) ) != 1 || Saig_ObjIsPi(pAig, pDri) || Aig_ObjIsConst1(pDri) )
88 Vec_IntPush( vVars, Aig_ObjId(pObj) );
90 Vec_IntPush( vVars, Aig_ObjId(pDri) );
130 DdNode * bCube, * bVar, * bTemp;
134 TimeStop = dd->TimeStop; dd->TimeStop = 0;
135 bCube = Cudd_ReadOne( dd ); Cudd_Ref( bCube );
138 assert( Vec_IntEntry( vDriRefs, Aig_ObjFaninId0(pObj) ) >= 1 );
139 if ( Vec_IntEntry( vDriRefs, Aig_ObjFaninId0(pObj) ) != 1 )
141 if ( !Aig_ObjFaninC0(pObj) )
143 bVar = Cudd_bddIthVar( dd, Aig_ObjFaninId0(pObj) );
144 bCube = Cudd_bddAnd( dd, bTemp = bCube, bVar ); Cudd_Ref( bCube );
145 Cudd_RecursiveDeref( dd, bTemp );
148 dd->TimeStop = TimeStop;
167 DdNode * bVar1, * bVar2, * bProd, * bRes, * bTemp;
170 dd = Cudd_Init( Aig_ManObjNumMax(
p), 0, CUDD_UNIQUE_SLOTS, CUDD_CACHE_SLOTS, 0 );
171 Cudd_AutodynEnable( dd, CUDD_REORDER_SYMM_SIFT );
172 dd->TimeStop = TimeTarget;
173 bRes = Cudd_ReadOne(dd); Cudd_Ref( bRes );
178 if ( !Saig_ObjIsLi(
p, pObj) )
180 bVar1 = Cudd_bddIthVar( dd, Aig_ObjId(pObj) );
181 bVar2 = Cudd_bddIthVar( dd, Aig_ObjFaninId0(pObj) );
182 if ( Aig_ObjIsConst1(Aig_ObjFanin0(pObj)) )
183 bVar2 = Cudd_ReadOne(dd);
184 bVar2 = Cudd_NotCond( bVar2, Aig_ObjFaninC0(pObj) );
185 bProd = Cudd_bddXnor( dd, bVar1, bVar2 ); Cudd_Ref( bProd );
188 bRes = Cudd_bddAnd( dd, bTemp = bRes, bProd );
191 Cudd_RecursiveDeref( dd, bTemp );
192 Cudd_RecursiveDeref( dd, bProd );
196 Cudd_RecursiveDeref( dd, bTemp );
197 Cudd_RecursiveDeref( dd, bProd );
208 Cudd_AutodynDisable( dd );