47 unsigned * pTruth0, * pTruth1;
49 pTruth0 = (
unsigned *)Aig_ObjFanin0(pNode)->pData;
50 pTruth1 = (
unsigned *)Aig_ObjFanin1(pNode)->pData;
51 if ( Aig_ObjIsExor(pNode) )
52 for ( i = 0; i <
nWords; i++ )
53 pTruth[i] = pTruth0[i] ^ pTruth1[i];
54 else if ( !Aig_ObjFaninC0(pNode) && !Aig_ObjFaninC1(pNode) )
55 for ( i = 0; i <
nWords; i++ )
56 pTruth[i] = pTruth0[i] & pTruth1[i];
57 else if ( !Aig_ObjFaninC0(pNode) && Aig_ObjFaninC1(pNode) )
58 for ( i = 0; i <
nWords; i++ )
59 pTruth[i] = pTruth0[i] & ~pTruth1[i];
60 else if ( Aig_ObjFaninC0(pNode) && !Aig_ObjFaninC1(pNode) )
61 for ( i = 0; i <
nWords; i++ )
62 pTruth[i] = ~pTruth0[i] & pTruth1[i];
64 for ( i = 0; i <
nWords; i++ )
65 pTruth[i] = ~pTruth0[i] & ~pTruth1[i];
84 assert( Vec_PtrSize(vLeaves) <= Vec_PtrSize(vTruthElem) );
85 assert( Vec_PtrSize(vNodes) <= Vec_PtrSize(vTruthStore) );
86 assert( Vec_PtrSize(vNodes) == 0 || pRoot == Vec_PtrEntryLast(vNodes) );
89 pObj->
pData = Vec_PtrEntry( vTruthElem, i );
91 nWords = Abc_TruthWordNum( Vec_PtrSize(vLeaves) );
94 return (
unsigned *)pRoot->
pData;
unsigned * Aig_ManCutTruth(Aig_Obj_t *pRoot, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vNodes, Vec_Ptr_t *vTruthElem, Vec_Ptr_t *vTruthStore)