86 unsigned * pIn, * pOut, * pTemp;
96 for ( i = 0; i < (int)pCutF->
nLeaves - 1; i++ )
100 for ( i = 0; i < (int)pCutT->
nLeaves - 1; i++ )
104 for ( i = 0; i < (int)pCutRes->
nLeaves - 1; i++ )
107 for ( i = 0; i < (int)pCutF->
nLeaves; i++ )
109 if ( pCutF->
pLeaves[i] == Node )
111 for ( k = 0; k < (int)pCutRes->
nLeaves; k++ )
117 for ( i = 0; i < (int)pCutT->
nLeaves; i++ )
119 for ( k = 0; k < (int)pCutRes->
nLeaves; k++ )
128 for ( NodeIndex = 0; NodeIndex < (int)pCutF->
nLeaves; NodeIndex++ )
129 if ( pCutF->
pLeaves[NodeIndex] == Node )
134 Extra_TruthCopy( uTemp, Cut_CutReadTruth(pCutF), pCutF->
nLeaves );
137 pIn = uTemp; pOut = uCof0;
138 for ( i = NodeIndex; i < (int)pCutF->
nLeaves - 1; i++ )
141 pTemp = pIn; pIn = pOut; pOut = pTemp;
143 if ( (pCutF->
nLeaves - 1 - NodeIndex) & 1 )
144 Extra_TruthCopy( pOut, pIn, pCutF->
nLeaves );
148 Extra_TruthCopy( uCof0, uTemp, pCutF->
nLeaves );
150 Extra_TruthCopy( uCof1, uTemp, pCutF->
nLeaves );
154 for ( i = NodeIndex; i < (int)pCutF->
nLeaves - 1; i++ )
159 uPhase = Cut_TruthPhase(pCutRes, pCutF);
160 assert( Extra_WordCountOnes(uPhase) == (
int)pCutF->
nLeaves );
162 Extra_TruthCopy( uCof0, uTemp, pCutF->
nVarsMax );
164 Extra_TruthCopy( uCof1, uTemp, pCutF->
nVarsMax );
167 uPhase = Cut_TruthPhase(pCutRes, pCutT);
168 assert( Extra_WordCountOnes(uPhase) == (
int)pCutT->
nLeaves );
172 pTemp = Cut_CutReadTruth(pCutRes);
173 for ( i = Extra_TruthWordNum(pCutRes->
nLeaves)-1; i >= 0; i-- )
174 pTemp[i] = (uCof0[i] & ~uTemp[i]) | (uCof1[i] & uTemp[i]);
177 for ( i = (
int)pCutF->
nLeaves - 1; i >= NodeIndex; --i )
179 pCutF->
pLeaves[NodeIndex] = Node;